我有一個關于 JavaFX 按鈕的問題。我的場景中有一組 4 個按鈕。前三個按鈕分別標記為“主頁”、“帳戶”、“地圖”。最后一個按鈕叫做“Go”。
我在用 button.setOnAction(new EventHandler<ActionEvent>(){ })
對于每個按鈕來控制它將觸發的事件。我的問題是我想點擊前三個按鈕之一(帳戶、主頁、地圖),但在點擊“開始”按鈕之前不操作該事件。
例如,我單擊主頁,按鈕更改顏色以顯示它已被單擊。我按 go,與主頁按鈕相關的操作將被執行。我怎么做這樣的事情?
我遇到的另一個問題是如何確保一次只單擊前三個按鈕(主頁、帳戶和地圖)中的一個。如果我先單擊“主頁”,然后單擊“地圖”,然后單擊“開始”,我想action 地圖事件,所以當地圖被按下時家會被釋放。
我感謝任何幫助:)
uj5u.com熱心網友回復:
正如評論中所注意到的,您可以將ToggleButton(或RadioButton)用于"Home"、"Account"和"Map",并將它們添加到ToggleGroup:
public class App extends Application {
@Override
public void start(Stage stage) {
ToggleButton buttonHome = new ToggleButton("Home");
ToggleButton buttonAccount = new ToggleButton("Account");
ToggleButton buttonMap = new ToggleButton("Map");
ToggleGroup group = new ToggleGroup();
group.getToggles().addAll(buttonHome, buttonAccount, buttonMap);
Button buttonGo = new Button("Go");
// Disable button "Go" when no other button is selected (remove this line if not needed)
buttonGo.disableProperty()
.bind(group.selectedToggleProperty().isNull());
buttonGo.setOnAction(e -> {
ToggleButton selected = (ToggleButton)group.getSelectedToggle();
if (selected != null) {
System.out.println(selected.getText());
}
});
HBox buttons = new HBox(5, buttonHome, buttonAccount, buttonMap);
VBox pane = new VBox(10, buttons, buttonGo);
pane.setAlignment(Pos.CENTER_RIGHT);
Scene scene = new Scene(pane);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
輸出:

如果您全部替換ToggleButton為RadioButton:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/330666.html
