gpt4 book ai didi

java - 为什么我不能通过另一个 jFrame 将项目添加到 jComboBox?

转载 作者:行者123 更新时间:2023-11-30 07:36:27 25 4
gpt4 key购买 nike

我有两个 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);
}

您可以阅读Object-Oriented Programming Concepts更好地理解 OOP 概念。

关于java - 为什么我不能通过另一个 jFrame 将项目添加到 jComboBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com