[英]JDialog and JFrame and new instance
我有2个类-带按钮的JFrame和上面没有几个文本字段的JDialog(弹出窗口)。 现在,当我单击JFrame中的按钮时,将显示一个JDialog:
/*** someClass class ****/
JButton btnNewButton = new JButton("");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
jd = new jDialog();
jd.setModal(true);
jd.setVisible(true);
}
});
public void doStuff(String one....String five){
... ..
}
现在,将弹出一个jDialog,我需要填充其中的一些文本字段,然后单击另一个按钮进行确认。
/*** jDialog class ***/
JButton btnConfirm = new JButton("");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
one = 1_tf.getText();
two = 2_tf.getText();
three = 3_tf.getText();
four = 4_tf.getText();
five = 5_tf.getText();
doAnything(one,two,three,four,five);
1_tf.setText("");
2_tf.setText("");
3_tf.setText("");
4_tf.setText("");
5_tf.setText("");
}
});
public void doAnything(String one,String two,String three,String four,String five){
someClass sc = new someClass();
sc.doStuff(one,two,three,four,five);
}
文本字段的值将传递给doAnything()方法,doAnything()内部是someClass类的实例,以访问sc.doStuff()方法并传递值。
现在的问题是,每当我在jDialog类上单击“确认”时,就会出现一个新的JFrame,所以有2个JFrame不是我想要的。就像每当我在jdialog上执行某些操作时,它都会创建一个新的JFrame而不是重叠原始的JFrame 。
在doAnything()中不要重新创建someClass(最好阅读java命名约定-classes应该从大写字母开始)实例。
定义someClass实例的类字段? 只需创建一次(如果为null),然后重复使用。
这可能是因为在someClass
构造函数中创建了一个JFrame展示。 为避免此问题,请static
引用doStuff()
方法。
声明为:
public static doStuff(one, two, three, four, five) {
...
}
并将其用作:
someClass.doStuff(one, two, three, four, five);
现在,使用该方法时,不必创建someClass
类的对象,也不必调用构造函数方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.