Java 如何将swing中两个不同类中可用的一个组合框的数据影响到另一个组合框?

Java 如何将swing中两个不同类中可用的一个组合框的数据影响到另一个组合框?,java,swing,Java,Swing,我在两个不同的类中有两个组合框。我的要求是,如果我更改了一个类中的数据,那么该数据应该显示在另一个类中。有没有听众或其他方式?你能帮我吗?尽管这是一个GUI程序,Java OOP实践的原则仍然保持不变。您提供一个类公共setter方法以允许其他类更改其属性,并允许其他类(通常是“控制”类,例如侦听第一个JComboBox的类)通过调用第一个类实例的setter方法来调用这些方法。您应该学习模型-视图-控制器原理的基础知识,通常缩写为“MVC”。组合框由以下部分组成: 视图(视觉表示) 控制器(

我在两个不同的类中有两个组合框。我的要求是,如果我更改了一个类中的数据,那么该数据应该显示在另一个类中。有没有听众或其他方式?你能帮我吗?

尽管这是一个GUI程序,Java OOP实践的原则仍然保持不变。您提供一个类公共setter方法以允许其他类更改其属性,并允许其他类(通常是“控制”类,例如侦听第一个JComboBox的类)通过调用第一个类实例的setter方法来调用这些方法。

您应该学习模型-视图-控制器原理的基础知识,通常缩写为“MVC”。组合框由以下部分组成:

  • 视图(视觉表示)
  • 控制器(单击打开,选择条目)和
  • 一个模型(在JComboBox的情况下,它是一个模型)
就你的目的而言,听起来你想做的是

  • 在两个组合框中共享一个模型,或
  • 将和/或添加到组合框中,该组合框将通知另一个更改
请注意,共享模型也意味着在一个框中选择的内容在另一个框中被选择。该模型封装了选择状态以及项目列表。解决这个问题的一种方法是在模型中加入一种模型。两个组合框都可以有自己的ComboBoxModel,具有自己的选择状态等,但共享项目列表的基础二级模型。然后,项目列表的更新将对双方可见。然而,这意味着您以覆盖默认行为的方式实现自己或子类


我建议您以及阅读关于使用的。

您可以使用第二个类的对象,然后访问该类的textfield设置值

样本

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ComboBox{
  JComboBox combo;
  JTextField txt;
  static ComboBox b1 = null;
  static ComboBox b2 = null;
  public static void main(String[] args) {
  b1 = new ComboBox();
  b2 = new ComboBox();
  }

  public ComboBox(){
  String course[] = {"BCA","MCA","PPC","CIC"};
  JFrame frame = new JFrame("Creating a JComboBox Component");
  JPanel panel = new JPanel();
  combo = new JComboBox(course);
  combo.setBackground(Color.gray);
  combo.setForeground(Color.red);
  txt = new JTextField(10);
  panel.add(combo);
  panel.add(txt);
  frame.add(panel);
  combo.addItemListener(new ItemListener(){
  public void itemStateChanged(ItemEvent ie){
  String str = (String)combo.getSelectedItem();
  b1.txt.setText(str);
  b2.txt.setText(str);
  }
  });
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setSize(400,400);
  frame.setVisible(true);
  }
}

给我一个更具体的代码示例!你能不能试着改变一下这个问题,这是一个荒谬的、蹩脚的英语问题。如果你想让人们看这个话题,你应该先体面地讲出来。@TFennis,你忘了一个逗号实际上我的英语很差;)