- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我注意到从 Control 类继承的每个元素底部都有一个下划线。你可以在图片中看到它:
当我将焦点放在任何项目上时,该行就会消失。为什么会发生这种情况,我该如何摆脱它?
代码:
Main.java
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
sample.fxml
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ProgressBar?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.control.ComboBox?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<GridPane stylesheets="@sample.css"
xmlns:fx="http://javafx.com/fxml"
alignment="center">
<HBox>
<ProgressBar minWidth="100" progress="0.3"/>
<Button text="Button"/>
<Button text="Button"/>
<Button text="Button"/>
<ComboBox>
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="String" />
<String fx:value="String" />
<String fx:value="String" />
</FXCollections>
</items>
</ComboBox>
</HBox>
</GridPane>
示例.css
.root {
-fx-background-color: gray;
}
最佳答案
这与背景插图有关。我查看了 modena.css
文件,它位于 com.sun.javafx.scene.control.skin.modena< 的
。您的 JavaFX 项目必然包含此 JAR,因此您可以随意查看该文件。jfxrt.jar
中。/
我查看了 .button
的样式并看到了我怀疑可能导致此问题的一行:
-fx-background-insets: 0 0 -1 0, 0, 1, 2;
参数顺序为:顶部、右侧、底部、左侧。我决定覆盖 sample.css
中的“bottom”值,将 -1 更改为 0:
.button {
-fx-background-insets: 0 0 0 0, 0, 1, 2;
}
这解决了问题,但打破了焦点突出显示,所以我从 modena.css
复制并粘贴了 button:focus
的背景插图,以提供以下 CSS文件:
.root {
-fx-background-color: grey;
}
.button {
-fx-background-insets: 0 0 0 0, 0, 1, 2;
}
.button:focused {
-fx-background-insets: -0.2, 1, 2, -1.4, 2.6;
}
结果是:
左边是没有焦点的按钮,右边是有焦点的按钮。
您可以对您希望更改的大多数其他控件执行类似的操作,但是进度条有点不同,因为需要更改两件事:
.progress-bar > .bar
{
-fx-background-insets: 3 3 3 3;
/* ^ was 4 */
}
.progress-bar > .track
{
-fx-background-insets: 0, 0 0 1 0, 1 1 1 1;
/* ^ was 2 */
}
“调试”JavaFX 的一些有用的东西是:
modena.css
,如上所述关于JavaFX - 为什么每个 Control 元素下都有一行以及如何删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45186694/
我知道我应该指定 argtypes对于我的 C/C++ 函数,因为我的某些调用会导致堆栈损坏。 myCfunc.argtypes = [ct.c_void_p, ct.POINTER(ct.c
我正在从 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators 学习 Itera
在我的数据库中,我有一个类别表。类别可以有父类别,使其成为递归关系 我还有一个产品表。每个产品都属于一个类别。 例如,我有一棵树,如下所示: Category Sub-Category 1
定义列表要求每个 会有标签? 例子: option1 每个 存在他的如果 空: value1 name2 value2 选项 2 每个 不存在他的如果空: value1 name2 value
我制作了一个脚本,它在开始时检查操作系统版本。 它读取/etc/os-release 文件,并检查操作系统是否为 CentOS 7。 但我不确定我是否可以确保每个 CentOS 7 都有那个文件。 其
我一直在使用 webapi 设置一个 mvc 项目。我可以正常工作,但我不知道为什么我的 GET 调用的 URL 中有附加部分。 示例: /api/User/Zholen?_=137349028082
我创建了具有 ACTIVE BOOL 的基类 class BaseTest{ public: bool active = false; BaseTest(){ // make
.parent { background-color: yellow; display: flex; justify-content: space-evenly; } .parent >
完整的错误是: AttributeError: Neither 'ColumnClause' object nor 'Comparator' object has an attribute 'desc
我的 GUI 中有一些功能可以随着时间的推移更新给定的文本组件。理想情况下,我希望它接受任何具有 getText/setText 方法的内容。使用 JTextField 和 JTextPane 可以轻
我是一名优秀的程序员,十分优秀!