为什么我不能通过另一个 jFrame 将项目添加到 jComboBox?
Why cant i add items to a jComboBox through another jFrame?
我有两个 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
class 写成
的一种方式
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);
}
您可以阅读 Object-Oriented Programming Concepts 以更好地理解 OOP 概念。
我有两个 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
class 写成
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);
}
您可以阅读 Object-Oriented Programming Concepts 以更好地理解 OOP 概念。