【问题标题】:JavaFX ComboBox containing Bytes包含字节的 JavaFX ComboBox
【发布时间】:2016-12-16 13:43:38
【问题描述】:

我曾经使用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 中解决它?

【问题讨论】:

  • 错误信息告诉你解决方法:ComboBox 没有getSelectedItem() 方法。您可以通过其选择模型:setPresetComboBox.getSelectionModel().getSelectedItem(); 或通过获取值:setPresetComboBox.getValue() 来获取所选项目。
  • 好吧,事实证明我根本不理解这个错误。作为答案发布,我会接受。谢谢

标签: java javafx combobox


【解决方案1】:

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

您可以将getSelectedItemselection modelComboBox 用作

setPresetComboBox.getSelectionModel().getSelectedItem();

或者ComboBoxvalue property直接作为

setPresetComboBox.getValue();

这两个属性的区别记录在javadoc of ComboBox:

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

  • value 属性不限于项目列表中包含的项目 - 它可以是任何值,只要它是 键入 T。
  • 如果 value 属性设置为非 null 对象,随后清空项目列表,则 value 属性不 无效。
  • 清除选择模型中的选择不会使 value 属性为空 - 它与以前一样。
  • 即使列表中没有项目(或列表中的项目较少),选择模型将选择集设置为给定索引也是有效的 列表比给定的索引)。一旦项目列表进一步 填充,使得列表包含足够的项目以包含项目 给定的索引,既选择模型 SelectionModel.selectedItemProperty() 和 value 属性将是 更新为具有此值。这与其他控件不一致 使用选择模型,但有意为 ComboBox 完成。

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多