[英]How to take text from a text field to a JLable in another JFrame?
我正在使用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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.