gpt4 book ai didi

java - 从Java中的组合框获取int值

转载 作者:行者123 更新时间:2023-12-01 19:10:24 24 4
gpt4 key购买 nike

我正在努力将数据库中的列中的 int 值获取到组合框中,以便一旦选择这些值,当我设备此解决方案时,这些值就会在文本框中打印出来:

private void jComboBoxSNActionPerformed(java.awt.event.ActionEvent evt) {                                            

JComboBox jComboBoxSN = (JComboBox) evt.getSource();
int s_n = (Integer) jComboBoxSN.getSelectedItem();
System.out.println("Number: " + s_n);
}

我想知道,这种编程是可接受的还是糟糕的编程?

最佳答案

除非您确定组合框不能包含空值(如果您从数据库加载值,则这是不确定的),否则您显示的代码并不安全。这一行:

int s_n = (Integer) jComboBoxSN.getSelectedItem();

如果在空项上执行,将导致 NullPointerException。 (自动拆箱空基元包装器是 NullPointerException)。

另一种方法是在将 Integer 转换为 int 之前检查 null:

Integer i = (Integer)jComboBoxSN.getSelectedItem();
if (i != null) {
int s_n = i; // or s_n = i.intValue();
}

但是,我认为这样的东西会更合适:

    final JTextArea text = new JTextArea();
JComboBox combo = new JComboBox();
combo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
// assume single selection
int i = (Integer)e.getItemSelectable().getSelectedObjects()[0];
text.setText("Selected [" + i + "]");
}
}
});

关于java - 从Java中的组合框获取int值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com