在组合框中创建选项作为可用串行端口

时间:2013-06-24 06:18:23

标签: java swing serial-port jcombobox event-dispatch-thread

所以,我对如何根据可用的串口改变组合框中的选项感到困惑。有谁能帮我解决这个问题?我想我需要使用javax.swing.getModel,但我不确定如何做到这一点。

  if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
        ArrayList<String> serialports = new ArrayList<String>();
        serialports.add(portId.getName());
        String[] ports = new String[serialports.size()];
        ports = serialports.toArray(ports); 
        GUI.jComboBox2 = new JComboBox(ports);
        GUI.jComboBox2.addActionListener(GUI.jComboBox2);
        wantedPortName = (String) GUI.jComboBox2.getSelectedItem();

1 个答案:

答案 0 :(得分:2)

有两个问题......由于缺乏背景,很难知道哪一个是正确的

可能性#1

您之前创建了组合框并将其添加到屏幕....

如果是这种情况,那么您的代码刚刚取消引用它。这意味着屏幕上的控件不再是您正在与之交互的控件。

在这种情况下,您应该只更新模型......

ArrayList<String> serialports = new ArrayList<String>();
serialports.add(portId.getName());
String[] ports = new String[serialports.size()];
ports = serialports.toArray(ports); 
ComboBoxModel<String> model = new DefaultComboBoxModel<>(ports);
GUI.jComboBox2.setModel(model);

可能性#2

您之前从未在屏幕上添加组合框...

在这种情况下,您应该......但是没有足够的背景来描述如何使用您的代码实现这一目标......

可能性#3

我不知道你在说什么......