大家,我对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/