Java 将JButton操作从一个类传递到另一个类中的JTextfield

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() {

我正在试验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 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
类,因此必须将其设置为一个。您可以看到更新。