Java 为什么我不能通过另一个jFrame向jComboBox添加项目?

Java 为什么我不能通过另一个jFrame向jComboBox添加项目?,java,swing,combobox,frame,Java,Swing,Combobox,Frame,我有两个JFrame:Frame1和Frame2 Frame1有一个jComboBox和一个jButton;Frame2只有一个jButton Frame1可以打开Frame2 我在第1帧上有这个代码: public class Frame1 extends javax.swing.JFrame { public void addTextToComboBox(){ this.jComboBox1.removeAllItems(); this.jComboBox1.addItem("Hello"

我有两个JFrame:Frame1和Frame2

Frame1有一个jComboBox和一个jButton;Frame2只有一个jButton

Frame1可以打开Frame2

我在第1帧上有这个代码:

public class Frame1 extends javax.swing.JFrame {

public void addTextToComboBox(){
this.jComboBox1.removeAllItems();
this.jComboBox1.addItem("Hello");
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
this.addTextToComboBox();
}              

}
它工作得很好:当我单击jButton时,“Hello”字符串被添加到jComboBox中

现在我在Frame2上有了以下代码:

public class Frame2 extends javax.swing.JFrame {

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Frame1 frame1=new Frame1();
frame1.addTextToComboBox();
}

}
这样,当我单击Frame2上的jButton时,“Hello”字符串就不会添加到Frame1上的jComboBox中

为什么??有人能给我一个解决方案吗


提前感谢。

因为您正在尝试将字符串添加到
Frame1
上的
jComboBox
的另一个实例,该实例现在不显示

如果要将字符串添加到现在显示的
jComboBox
,则需要将
Frame1
的对象传递到
Frame2
,然后调用
addTextToComboBox()

例如:

Frame2
类编写为

public class Frame2 extends javax.swing.JFrame {

    Frame1 frame1;
    public Frame2(Frame1 frame1) {
        this.frame1 = frame1;
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        frame1 = new Frame1();
        frame1.addTextToComboBox();
    }

}
以及使用它

public static void main(String[] args) {
    Frame1 f1 = new Frame1();
    Frame2 f2 = new Frame2(f);
}

您可以阅读以更好地理解OOP概念。

您能给我一个示例代码来将对象Frame1传递到Frame2吗?请参见“这样,当我单击Frame2上的jButton时,Frame1上的jComboBox中不会添加“Hello”字符串。为什么?”因为
Frame1
(由第二个帧创建)是
Frame1
的第二个实例。它是第二个具有组合的实例。已更改,但从未显示该实例。这是非常(非常)基本的OO,应该在简单的应用程序中进行分类。(即“非图形用户界面”)。“有人能给我一个解决方案吗?”所以不是服务台,以防你弄错了。