我目前正在开发一个JavaFX
应用程序,在那里我使用了ButtonBar
一些按钮。当我运行程序时,第一个Button
始终是重点。如何禁用该设置?
PS:我使用了一些CSS
代码来更改默认外观,并且那个棕色框表示按钮已聚焦。
我目前正在开发一个JavaFX
应用程序,在那里我使用了ButtonBar
一些按钮。当我运行程序时,第一个Button
始终是重点。如何禁用该设置?
PS:我使用了一些CSS
代码来更改默认外观,并且那个棕色框表示按钮已聚焦。
您可以使用以下命令将焦点从按钮上移开otherNode.requestFocus()
:
请求该节点获得输入焦点,并且该节点的顶级祖先成为焦点窗口。为了有资格获得焦点,节点必须是场景的一部分,它和它的所有祖先都必须可见,并且不能被禁用。如果此节点符合条件,此函数将使其成为此场景的“焦点所有者”。每个场景最多有一个焦点所有者节点。但是,焦点所有者实际上不会拥有输入焦点,除非场景属于既可见又活跃的 Stage ( docs )。
就像在这个例子中:
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar;
import javafx.stage.Stage;
import java.util.stream.IntStream;
public class App extends Application {
@Override
public void start(Stage stage) {
// Create controls:
ButtonBar buttonBar = new ButtonBar();
IntStream.range(0, 3).forEach(i -> buttonBar.getButtons().add(new Button("Button " + i)));
// This takes away the focus from the button:
Platform.runLater(buttonBar::requestFocus); // (Does not have to be the buttonBar itself)
// Prepare and show stage:
stage.setScene(new Scene(buttonBar));
stage.show();
}
public static void main(String[] args) {
launch();
}
}