java - Javafx:如何将方法从一个类调用到另一个类?
问题描述
我是编程新手。我现在的问题是我想要求用户在 TextField 中给出他的名字,并在另一个 BoardGame 类中使用该值(名称)。例如,第一个窗口询问他的名字,第二个窗口在游戏中使用它。
我的视图类(第一个窗口)
public class View extends BorderPane {
public TextArea player1;
public Label name1;
public View(){
super();
initializeNodes();
layoutNodes();
}
public void initializeNodes() {
player1 = new TextArea();
name1 = new Label ("Player 1: ");
}
public void layoutNodes() {
player1.setPrefSize(100,20);
naam1.setPrefSize(60,40);
HBox hBox = new HBox(name1,player1);
TextField nameField;
nameField = new TextField();
nameField.setPrefHeight(70);
player1.getText();
}
EventHandler<ActionEvent> e = new EventHandler<ActionEvent>() {
public void handle(ActionEvent e)
{
player1.setText(name1.getText());
}
};
public TextArea getPlayer1() {
return player1;
}
我的棋盘游戏课(第二个窗口):
public class Boardgame extends BorderPane{
private Label lblPlayer1;
private View view;
public Boardgame(){
super();
initializeNodes();
layoutNodes();
}
private void initializeNodes() {
super.setPrefSize(900,700);
lblPlayer1 = new Label("Player 1");
}
private void layoutNodes() {
VBox vBox = new VBox(lblPlayer1);
}
唯一可行的是我得到“玩家 1”而不是名字,因为我把它硬编码在那里,但我怎样才能让它成为他们的输入(名字)?
解决方案
我推荐你使用 SceneBuilder,它会显示所有可用的 FX 组件,让你更容易设计 UI。
它需要一些研究,因为您需要一个控制器等(例如:http: //tutorials.jenkov.com/javafx/fxml.html)
但是,如果您想要一种用户能够输入的方式,Java FX 提供了警报对话框。
你可以在这里看到一个很好的例子:https ://code.makery.ch/blog/javafx-dialogs-official/
推荐阅读
- flutter - 滚动 TabBarView 子项时使 SliverAppBar 可滚动
- python - 在 Python 中使用 teradatasql 模块连接到 Teradata
- c# - 如何获取在 Xamarin MacOS 中以编程方式创建的 NSTextField 的值?
- deep-learning - 如何处理我的数据集中不相关的图像
- javascript - 如何在角度中删除连字符前的单词
- gdb - Dwarf DW_AT_location objdump 和 dwarfdump 不一致
- python - 查找每个边缘的距离并保持单独的路线
- python - 在pygame中使图像向4个方向移动
- r - 尝试向数据框添加行时出错
- java - 将 ArrayList 插入 While 条件?