java - (Java) 类里面的困难

标签 java swing jframe jdialog

enter image description here

根据上图;我希望 Frame1 使用 New(Jbutton) 显示 Frame2,并希望 Frame3 使用 Show(JButton) 显示。 Frame3 有这个默认的“Hello World”(JtextField),我想使用 Frame2 中的 Yes(JButton) 将其清空。

问题是我不知道 Frame2 的代码以及如何清空 Frame3 中的文本字段。

这是迄今为止我的代码:

Frame1.java

public class Frame1 extends JFrame implements ActionListener{

JButton b1 = new JButton("New");
JButton b2 = new JButton("Show");

Frame2 f2 = new Frame2();
Frame3 f3 = new Frame3();

public Frame1(){
    setLayout(new FlowLayout());
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(300,300);
    add(b1);
    add(b2);
    b1.addActionListener(this);
    b2.addActionListener(this);
}

public static void main(String args[]){
    new Frame1();
}

public void actionPerformed(ActionEvent e) {
    if(e.getSource()==b1){
        f2.setVisible(true);
    }
    else{
        f3.setVisible(true);
    }
}
}

Frame2.java

public class Frame2 extends JFrame implements ActionListener{

JButton b1 = new JButton("Yes");
JButton b2 = new JButton("No");

public Frame2(){
    setLayout(new FlowLayout());
    setVisible(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(300,100);

    add(b1);
    add(b2);
}
public void actionPerformed(ActionEvent e) {
    if(e.getSource()==b1){

    }else{

    }
}
}

Frame3.java

public class Frame3 extends JFrame{

JTextField t1 = new JTextField("Hello WOrld");

public Frame3(){
    setLayout(new FlowLayout());
    setVisible(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(200,200);

    add(t1);

}

}

最佳答案

您可以只在frame2构造函数中传递对frame3的引用,然后当您单击Yes按钮时,清除frame3的JTextField

编辑

当你声明框架时,你可以先创建你的frame3并将其传递给frame2构造函数:

Frame3 f3 = new Frame3();
Frame2 f2 = new Frame2(f3);

在你的框架中2

Frame refToFrame3;
...
public Frame2(Frame f){
   ...
   refToFrame3 = f;
   ...
...

public void actionPerformed(ActionEvent e) {
    if(e.getSource()==b1){
        refToFrame3.clearText()
        ...

然后在您的frame3中创建一个clearText方法来清除JTextField中的文本。

关于java - (Java) 类里面的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9635361/

相关文章:

java - 无法执行目标 org.codehous.mojo :exec-maven-plugin:1. 4.0:java

java - 如何将资源打印为字符串(struts java)

jvm - Java java.lang.Integer类中的代码注释 'HD, Figure'是什么意思?

java - 尝试向另一个类中的 GUI 显示 HashMap 值

java - 使用JTree获取Java中每个子类和兄弟类的名称

java - Jtable setValueAt 变得无关紧要

java - 如何将 java 数据库连接到多个 jFrames?

java - 正则表达式 java 中的 4 个条件中的 3 个

java - 从 JPanel 创建小图像

java - 多个 JFrame