0

そのため、使用可能なシリアル ポートに基づいてコンボ ボックスのオプションを変更する方法について混乱しています。誰でもこれを理解するのを手伝ってもらえますか? 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();
4

1 に答える 1

2

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

何を言っているのかわからない...

于 2013-06-24T06:36:20.100 に答える