包含Bytes的JavaFX ComboBox

时间:2016-08-10 09:09:11

标签: java javafx combobox

我曾经使用JComboBox来像这样在Swing中选择一个字节。

public synchronized void callPresetButtonActionPerformed(
                java.awt.event.ActionEvent evt) {
            byte _preset = (byte)getPresetcomboBox.getSelectedItem();

                try {
                    something=presetNo[_preset-1];

                byte[] command = {(byte) startTx, address, byteOne, goPreset, 0x00, something, endTx, 0x0F};                
                TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
                        twoWaySerCom.serialPort.getOutputStream());

            sw.out.write(command);

            } catch (IOException e) {
            e.printStackTrace();
            }
        }
    });
Byte[] preset = { 1, 2, 3, 4, 5};

现在我转向JavaFX,我正在尝试做同样的事情。

@FXML
public void setPresetButton (ActionEvent event) {
    byte _preset = (Byte)setPresetComboBox.getSelectedItem();
    try {
        something=presetNo[_preset-1];

        byte[] command = {(byte) startTx, address, byteOne, setPreset, 0x00, something, endTx, 0x0F};               
        TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
                twoWaySerCom.serialPort.getOutputStream());

    sw.out.write(command);

    } catch (IOException e) {
    e.printStackTrace();
    }
}
Byte[] preset = { 1, 2, 3, 4, 5};

我收到一个错误:The method getSelectedItem() is undefined for the type ComboBox<Byte>

我想我理解错误的含义但是如何在JavaFX中解决它?

1 个答案:

答案 0 :(得分:2)

正如错误消息所示,JavaFX getSelectedItem()不存在方法ComboBox

您可以使用ComboBox getSelectedItemselection model作为

setPresetComboBox.getSelectionModel().getSelectedItem();

ComboBox的{​​{3}}直接作为

setPresetComboBox.getValue();

这两个属性之间的差异记录在value property

  

ComboBox公开了ComboBoxBase.valueProperty()   ComboBoxBase,但有一些重要的价值点   需要理解与ComboBox相关的属性。这些   包括:

     
      
  • value属性不限于项目列表中包含的项目 - 只要它是有效值,它就可以是任何值   输入T。
  •   
  • 如果将value属性设置为非null对象,并且随后清除了items列表,则value属性不是   被淘汰了。
  •   
  • 清除选择模型中的选择不会使value属性为空 - 它仍然与之前相同。
  •   
  • 即使列表中没有项目(或更少项目),选择模型也可以将选择设置为给定索引   列表比给定的索引)。一旦项目列表进一步   填充,以便列表包含足够的项目以包含项目   给定的索引,都是选择模型   SelectionModel.selectedItemProperty()和value属性将是   已更新为具有此值。这与其他控件不一致   使用选择模型,但有意为ComboBox完成。
  •