내 .fxml에이 간단한 콤보 상자가 있습니다.
<ComboBox fx:id="comboShapes" prefWidth="150.0" value="Random">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Random" />
<String fx:value="Small Exploder" />
<String fx:value="Gospler Glider Run" />
<String fx:id="comboGlider" fx:value="Glider" />
</FXCollections>
</items>
</ComboBox>
그리고 컨트롤러의 다른 선택 상자 문자열에 set 메서드를 바인딩하는 방법이 궁금합니다.
onAction(ActionEvent event)
콤보 상자에 대한 작업 처리기를 정의 하십시오.onAction="#choiceMade"
(여기서 choiceMade는 작업 처리기 메서드에 대해 선택한 임의의 이름입니다).application / ComboAction.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="104.0" prefWidth="226.0" spacing="10.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ComboActionController">
<children>
<Label fx:id="choiceLabel" />
<ComboBox fx:id="comboShapes" onAction="#choiceMade" prefWidth="150.0" value="Random">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Random" />
<String fx:value="Small Exploder" />
<String fx:value="Gospler Glider Run" />
<String fx:value="Glider" />
</FXCollections>
</items>
</ComboBox>
</children>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</VBox>
application / ComboActionApp.java
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class ComboActionApp extends Application {
@Override
public void start(Stage stage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("ComboAction.fxml"));
Parent root = loader.load();
stage.setScene(new Scene(root));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
application / ComboActionController.java
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
public class ComboActionController {
@FXML
private ComboBox<String> comboShapes;
@FXML
private Label choiceLabel;
@FXML
void choiceMade(ActionEvent event) {
String choice = comboShapes.getValue();
choiceLabel.setText(
"Chosen: " + choice
);
switch (choice) {
case "Random":
randomChosen();
break;
case "Small Exploder":
smallExploderChosen();
break;
case "Gospler Glider Run":
gliderChosen();
break;
}
}
private void gliderChosen() {
// todo implement action handler.
}
private void smallExploderChosen() {
// todo implement action handler.
}
private void randomChosen() {
// todo implement action handler.
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다