如何创建动态 JComboBox
为了创建两个互连的动态 JComboBox,这样当在第一个中选择一个值时JComboBox,第二个 JComboBox 填充相应的值,遵循这些步骤:
1.为每组数据创建一个 DefaultComboBoxModel。
此模型将存储将填充到第二个 JComboBox 中的值。
2.当第一个 JComboBox 中的值更改时,将第二个 JComboBox 的模型设置为相应的模型。
这将确保第二个 JComboBox 根据第一个 JComboBox 中的选择填充适当的值。
示例:
以下 Java 代码演示了如何实现此功能功能:
import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; public class ComboTest extends JPanel implements ActionListener, Runnable { private final JComboBox combo1 = new JComboBox( new String[]{"Course 1", "Course 2", "Course 3"}); private final JComboBox combo2 = new JComboBox(); private ComboBoxModel[] models = new ComboBoxModel[3]; public ComboTest() { models[0] = new DefaultComboBoxModel( new String[]{"A1", "A2"}); models[1] = new DefaultComboBoxModel( new String[]{"B1", "B2", "B3", "B4"}); models[2] = new DefaultComboBoxModel( new String[]{"C1", "C2"}); combo2.setModel(models[0]); this.add(combo1); this.add(combo2); combo1.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { int i = combo1.getSelectedIndex(); combo2.setModel(models[i]); } @Override public void run() { JFrame f = new JFrame("ComboTest"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(this); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new ComboTest()); } }
此代码将创建一个带有两个 JComboBox 的 JFrame。当您从第一个 JComboBox 中选择一个值时,第二个 JComboBox 将填充相应的值。
以上是如何在 Java 中创建互连的动态 JComboBox?的详细内容。更多信息请关注PHP中文网其他相关文章!