我有一个jFrame1
,两个JTextField
。其中一个文本字段应加载来自jFrame2
的数据。在我的jFrame1
我有一个打开jFrame2
的按钮。当您按下按钮打开jFrame2
时,您可以看到4个按钮,当您按下其中一个按钮时,jframe2
应该关闭并在我的一个文本字段中加载一个字符串。
任何人都知道如何做到这一点?因为我已经尝试了几个代码并且不会离开我。
这是我的示例代码:
public class jFrame1 extends javax.swing.JFrame{
public JTextField txt1;
private JButton btn1;
btn1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jFrame2 jframe2 = new jFrame2(this);
jframe2.setVisible(true);
}
});
.....
}
public class jFrame2 extends javax.swing.JFrame{
private JFrame jframe1;
public jFrame2(JFrame jframe){
this.jframe1 = jframe;
}
...
jframe1.txt1.setText("Hallo!");
this.dispose();
.....
}
答案 0 :(得分:0)
有太多方法,
其中一个是使用String
参数为您的框架提供构造函数并传递该值。
例如,
public class jFrame1 extends javax.swing.JFrame{
public JTextField txt1; // Hope you have initialized this somewhere in your code else you will face a NPE.
private JButton btn1;
btn1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jFrame2 jframe2 = new jFrame2(this, txt1.getText());
jframe2.setVisible(true);
}
});
.....
}
public class jFrame2 extends javax.swing.JFrame{
private JFrame jframe1;
private String text;
public JTextField txtDemo;
public jFrame2(JFrame jframe){
this.jframe1 = jframe;
}
public jFrame2(JFrame jframe, String text){
this.jframe1 = jframe;
txtDemo = new JTextField(text);
}
...
}
您也可以在此SO question找到答案。
在实施之前参考The Use of Multiple JFrames, Good/Bad Practice?上的答案,对JFrame
和Swing给出了一个很好的解释。