java - JComboBox 选择更改

标签 java swing combobox event-handling

大家,我对Java GUI很陌生,我遇到了 JComboBox 的问题,当我从组合框中删除AllItems以刷新它时,它会触发,这是一个问题,因为我正在获取所选项目的详细信息并填充一个带有它们的文本框,因此当它在那时触发时,我得到一个空指针。 是否有任何简单的方法可以在更改所选项目时调用组合框上的方法,而不仅仅是在组合框内容更改时调用?

代码

组合框当前方法

private void customerComboActionPerformed(java.awt.event.ActionEvent evt) {                                              
    
   setDetails();
    
} 

组合框中项目的设置方法

public void setCustomers()
{
customerCombo.removeAllItems();
for (Customer curr : Main.getNewCustomerList().getCustomers())
{
 
    customerCombo.addItem(curr);
}
}

设置详情的方法

public void setDetails()
{
Customer selected = (Customer) customerCombo.getSelectedItem();
forenameText.setText(selected.getForename());
surnameText.setText(selected.getSurname());
costperkgText.setText(String.valueOf(selected.getDeliveryCost()));
line1Text.setText(String.valueOf(selected.getColAddress().getAddressLine1()));
line2Text.setText(String.valueOf(selected.getColAddress().getAddressLine2()));
cityText.setText(String.valueOf(selected.getColAddress().getCity()));
postcodeText.setText(String.valueOf(selected.getColAddress().getPostcode()));

}

最佳答案

您没有考虑没有选择的情况。

public void setDetails()
{
    Customer selected = (Customer) customerCombo.getSelectedItem();
    if (selected != null)
    {
        // there is a selection so use it
    }
    else
    {
        // for example, clear the text boxes
    }
}

我们还希望更改组合框的内容可能会更改其选择,因此我们不应忽略它。

关于java - JComboBox 选择更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27322260/

相关文章:

java - 将形状添加到类属性

.net - 如何处理 ComboBox 选定的索引更改?

java - 如何防止 Spring 中的计划重叠?

Kotlin 密封类类型检测的 Java 等价物

java - 如果 JComboBox 是可编辑的,如何将输入的字符串转换为对象?

java - 可以避免 google 端点 URL 中的版本号

Java 2D数组,可以设置单独的大小吗?

java - JFileChooser 设置多选模式

javascript - 组合下拉列表不使用 javascript jquery getJSON 从文本文件生成数据

c# - ComboBox 自动完成键/值对