【问题标题】:Why cant i add items to a jComboBox through another jFrame?为什么我不能通过另一个 jFrame 向 jComboBox 添加项目?
【发布时间】:2016-02-11 01:43:19
【问题描述】:

我有两个 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。

为什么?有人可以帮我解决吗?

提前致谢。

【问题讨论】:

  • "这样,当我点击 Frame2 上的 jButton 时,"Hello" 字符串不会添加到 Frame1 上的 jComboBox。为什么?" 因为frame1 (创建由第二帧)是Frame1 的第二个实例。它是具有组合的第二个实例。已更改,但该实例从未显示。这真的(真的)是基本的 OO,应该在简单的应用程序中进行整理。 (即“不是 GUI”)。 “有人能给我一个解决方案吗?” SO 不是帮助台,以防你弄错了。

标签: java swing combobox frame


【解决方案1】:

因为您正在尝试将字符串添加到 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 概念。

【讨论】:

  • 能否请您展示一个将对象 Frame1 传递给 Frame2 的示例代码?
猜你喜欢
  • 1970-01-01
  • 2011-01-30
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多