gpt4 book ai didi

java - 如何将文本从文本字段获取到另一个 JFrame 中的 JLable?

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:14 24 4
gpt4 key购买 nike

我正在使用 Java 为足球模拟器制作 UI,并且有一段时间遇到了一个问题。我正在尝试将用户输入的团队转移到另一个 JFrame 上的另一个 JLabel。

我已经尝试过 getter 和 setter,但我不知道何时调用它们。

第一帧(jtextfield 所在的位置):

String userinput1 = Home.getText();
System.out.println(userinput1);
String userinput2 = Away.getText();

第二帧(jlabel Home 所在位置):

JLabel Home = new JLabel("");
Home.setBounds(333, 33, 46, 14);
frame.getContentPane().add(Home);
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

当我在第二帧中打印 userinput1 时,我希望看到输入的足球队名称,例如“Arsenal”,但实际输出为空。

最佳答案

做你想做的事情的最好方法(IMO)是有一个静态类,你想要共享的数据就在其中。

例如,假设我有两个 JFrame,在一个 JFrame 中我询问某人的电话号码,但在第二个 JFrame 中我想显示该电话号码。我会有类似的东西:

public class UserData{
private static String _phoneNumber = "";
private static ArrayList<Runnable> listeners = new ArrayList<Runnable>();

public static void listenForUpdate(Runnable run){
listeners.add(run);
}

private static void update(){
for(Runnable r: listeners){
r.run();
}
}

public static void setPhoneNumber(String phoneNumber){
_phoneNumber = phoneNumber;
update();
}

public static String getPhoneNumber(){
return _phoneNumber;
}
}

public class InputFrame extends JFrame{
// ... other code here
... onInput(String phoneNumber){
UserData.setPhoneNumber(phoneNumber);
}
}


public class DisplayFrame extends JFrame{
public DisplayFrame(){
super();
JLabel label = new JLabel("default");
add(label);
UserData.listenForUpdate(new Runnable(){
public void run(){
label.setText(UserData.getPhoneNumber());
}
});

setVisible(true);
}
}

关于java - 如何将文本从文本字段获取到另一个 JFrame 中的 JLable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55500087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com