我正在尝试通过具有简单背景颜色和边框属性的 css 创建一个类似 Fallout 4 的按钮样式,实际上它运行良好。唯一的问题是边框没有覆盖整个按钮。按钮底部有一块背景突出。(见截图1)
当我单击按钮并按住鼠标时,它会消失,但不会完全消失。(见截图2)
这是我的css的一部分:
.button {
-fx-background-color:transparent ;
-fx-background-radius:0;
-fx-border-color:transparent;
-fx-border-width: 0 3 3 0;
}
.button:hover {
-fx-background-color:lime;
-fx-background-radius:0;
-fx-border-color:black;
-fx-border-width: 0 3 3 0;
}
Run Code Online (Sandbox Code Playgroud)
知道什么可能导致这种情况吗?
我们的 JavaFX 应用程序是为了mvn clean javafx:jlink创建用于分发的独立包而构建的。现在我需要将外部资源(我的意思是 JSON 中的配置/内容文件,未打包到应用程序中,而是驻留在外部可自由访问的文件夹结构中)包含到该包中,最好是在使用 Maven 的构建过程中。
所以我想实现以下目标:复制MyProject/res/*到MyProject/target/MyProject/res
我发现许多解决方案都使用 Maven 资源插件,我尝试了以下方法但无济于事:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>copy-external-resources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/res</outputDirectory>
<resources>
<resource>
<directory>res</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我知道路径本身 ( /target/res) 不一定正确,因为我希望它位于 MyProject 文件夹中,但无论哪种方式,都不会复制任何文件夹。我在这里做错了什么?请注意,我对 Maven 及其阶段和不同阶段不太熟悉。
红色路径是构建后应该复制到目标文件夹的路径。
前面只是一个小小的背景:几年来我一直在使用Eclipse开发小型Java/JavaFX应用程序(用于室内使用或与朋友和家人共享)和Java 8,它非常好用且流畅.我完全错过了Java 9-11,所以我想我现在可以尝试一下.事实证明,现在处理事物的方式发生了很大的变化(模块化结构和所有这些),我得说我有点不知所措.
我的意思是,安装已经包含JavaFX的Java 8 JDK,启动Eclipse,获取JavaFX的插件并立即开始编码并不困难.现在使用Java 11,似乎我必须做很多我以前从未处理过的事情,所以它看起来似乎并不容易.JavaFX运行时现在是一个单独的东西,你可以手动把它,或使用Maven,或使用Gradle.从来没有做过这些事情,所以我只是浏览了一下互联网,以便开始使用Maven.在我以某种方式工作后,我的应用程序将无法运行Eclipse,直到我发现我必须为JavaFX运行时提供JVM参数.另外安装e(fx)clipse插件只是以某种方式破坏了我的IDE.
接下来就是简单地导出我的应用程序,这在以前从来就不是问题,因为系统没有找到任何JavaFX运行时或其他任何东西,因此不再真正起作用.然后我找到了一些关于应用程序部署的内容,哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇 为什么它现在必须如此复杂,或者我只是遗漏了什么?如果最终用户必须手动设置JavaFX运行时以使其工作而不是仅安装JRE,那么我应该如何分发这些应用程序?没有意义,所以我想我完全错过了一些东西.
最后一个问题:在"好日子"中使用JavaFX 11设置开发是否有"快速简便"的方法?因为现在我只是想坚持使用Java 8而忘记了所有的大惊小怪,但我还是想保持最新状态,所以...