在JavaFX中,您可以通过以下步骤实现在按钮点击时追加文本并更新一个ArrayList的功能:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
ArrayList<String> textList = new ArrayList<>();
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("JavaFX AppendText Example");
VBox root = new VBox();
root.setSpacing(10);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
TextField textField = new TextField();
Button appendButton = new Button("Append Text");
root.getChildren().addAll(textField, appendButton);
appendButton.setOnAction(e -> {
String text = textField.getText();
textList.add(text);
});
ListView<String> listView = new ListView<>();
ObservableList<String> items = FXCollections.observableArrayList(textList);
listView.setItems(items);
root.getChildren().add(listView);
完整的JavaFX应用程序代码示例:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.util.ArrayList;
public class JavaFXAppendTextExample extends Application {
ArrayList<String> textList = new ArrayList<>();
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("JavaFX AppendText Example");
VBox root = new VBox();
root.setSpacing(10);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
TextField textField = new TextField();
Button appendButton = new Button("Append Text");
appendButton.setOnAction(e -> {
String text = textField.getText();
textList.add(text);
textField.clear();
items.setAll(textList);
});
ListView<String> listView = new ListView<>();
ObservableList<String> items = FXCollections.observableArrayList(textList);
listView.setItems(items);
root.getChildren().addAll(textField, appendButton, listView);
}
public static void main(String[] args) {
launch(args);
}
}
这个示例中,我们通过一个按钮(appendButton)实现了追加文本到ArrayList的功能。当按钮被点击时,通过监听器将文本从文本框(textField)中获取并添加到ArrayList(textList)中,然后将ArrayList中的所有文本显示在列表视图(listView)中。
领取专属 10元无门槛券
手把手带您无忧上云