gpt4 book ai didi

java - JComboBox 选择更改

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

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

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