所以,我对如何根据可用的串口改变组合框中的选项感到困惑。有谁能帮我解决这个问题?我想我需要使用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();
答案 0 :(得分:2)
有两个问题......由于缺乏背景,很难知道哪一个是正确的
您之前创建了组合框并将其添加到屏幕....
如果是这种情况,那么您的代码刚刚取消引用它。这意味着屏幕上的控件不再是您正在与之交互的控件。
在这种情况下,您应该只更新模型......
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);
您之前从未在屏幕上添加组合框...
在这种情况下,您应该......但是没有足够的背景来描述如何使用您的代码实现这一目标......
我不知道你在说什么......