【发布时间】:2017-03-22 19:05:22
【问题描述】:
这是创建用户界面的主类:
public class Test extends Application {
@Override
public void start(Stage primaryStage) {
FlowPane mainPane = new FlowPane();
FlowPane query = new FlowPane();
query.setPadding(new Insets(30,30,30,30));
query.setHgap(10);
query.setVgap(20);
ComboBox<String> queryDropDown = new ComboBox<>();
queryDropDown.getItems().addAll("Gene", "Disease");
queryDropDown.setValue("Select One");
System.out.println(queryDropDown.getValue());
query.getChildren().addAll(new Label("Select Category: "), queryDropDown);
FlowPane userInput = new FlowPane();
userInput.setPadding(new Insets(30,30,30,30));
userInput.setHgap(10);
userInput.setVgap(20);
TextField searchField = new TextField();
searchField.setPrefColumnCount(3);
userInput.getChildren().addAll(new Label("Enter Query: "), new TextField());
FlowPane searchButtonPane = new FlowPane();
searchButtonPane.setPadding(new Insets(30,30,30,200));
searchButtonPane.setHgap(50);
searchButtonPane.setVgap(50);
Button searchButton = new Button("Search");
searchButtonPane.getChildren().addAll(searchButton);
ButtonHandlerClass handler1 = new ButtonHandlerClass();
searchButton.setOnAction(handler1);
mainPane.getChildren().addAll(query, userInput, searchButtonPane);
Scene scene = new Scene(mainPane, 300, 250);
primaryStage.setTitle("Genetic Database");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
// Prints "Hello, World" to the terminal window.
System.out.println("Hello, World");
Application.launch(args);
}
}
这是按钮处理程序类
public class ButtonHandlerClass implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent e) {
System.out.println("Button Clicked");
}
}
我希望能够让相同的“搜索”按钮执行不同的操作,具体取决于用户在组合框中选择的选项。我尝试为组合框做类似于 ButtonHandlerClass 的事情。任何建议将不胜感激。
谢谢!
【问题讨论】:
-
您希望 100% 创建
ButtonHandlerClass或者您愿意接受其他解决方案? -
我是编程新手,所以任何你认为效果更好的替代解决方案都值得学习!
-
通常在
Swing Library中的JavaFX之前,使用实现MouseAdapter的外部类是很常见的。
标签: java javafx actionevent