Java 为什么我不能通过另一个jFrame向jComboBox添加项目?
我有两个JFrame:Frame1和Frame2 Frame1有一个jComboBox和一个jButton;Frame2只有一个jButton Frame1可以打开Frame2 我在第1帧上有这个代码: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"
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,应该在简单的应用程序中进行分类。(即“非图形用户界面”)。“有人能给我一个解决方案吗?”所以不是服务台,以防你弄错了。