Java 将JButton操作从一个类传递到另一个类中的JTextfield
我正在试验JButton的操作,并试图使用Test1类中的按钮清除Test2类中的文本字段。这是密码Java 将JButton操作从一个类传递到另一个类中的JTextfield,java,jtextfield,windowbuilder,Java,Jtextfield,Windowbuilder,我正在试验JButton的操作,并试图使用Test1类中的按钮清除Test2类中的文本字段。这是密码 public class Test2 { private JFrame frame; private JTextField t1; private JTextField t2; /** * Launch the application. */ public void start() { EventQueue.invokeLater(new Runnable() {
public class Test2 {
private JFrame frame;
private JTextField t1;
private JTextField t2;
/**
* Launch the application.
*/
public void start() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test2 window = new test2();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public test2() {
initialize();
}
public void Reset(){
t1 = new JTextField();
t1.setText("");
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t1 = new JTextField();
t1.setColumns(10);
t1.setText("Start");
GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(35)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(t2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(t1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addContainerGap(281, Short.MAX_VALUE))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(38)
.addComponent(t1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(75)
.addComponent(t2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addContainerGap(98, Short.MAX_VALUE))
);
frame.getContentPane().setLayout(groupLayout);
}
}
}
此时,当我单击Test1类中的按钮时,Test2类中的textfield没有被清除。希望能得到这里所有长者的建议。如果我的问题有任何缺点,也请告诉我。非常感谢。用此更新了您的Reset()
方法
public void Reset(){
t1.setText("");
}
无法在重置方法中再次实例化文本字段。因为框架包含文本字段。请阅读Java编码规则,使用Reset()
而不是Reset()
更新
还有一件事是使用两个瞬间的Test2
。因此,您在Test2
中使用start()
方法
public void start() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
//test2 window = new test2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
使用此命令更新了您的Reset()
方法
public void Reset(){
t1.setText("");
}
无法在重置方法中再次实例化文本字段。因为框架包含文本字段。请阅读Java编码规则,使用Reset()
而不是Reset()
更新
还有一件事是使用两个瞬间的Test2
。因此,您在Test2
中使用start()
方法
public void start() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
//test2 window = new test2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
嗨,甘尼什,谢谢你的建议。我删除了实例化并将Reset()更改为Reset(),但我仍然无法使用JBUtton清除文本字段。您使用了两个即时的
Test2
类,因此必须将其设置为一个。您可以看到更新。嗨,Ganesh,感谢您的建议。我删除了实例化并将Reset()更改为Reset(),但我仍然无法使用JBUtton清除文本字段。您使用了两个即时的Test2
类,因此必须将其设置为一个。您可以看到更新。