gpt4 book ai didi

java - 如何检查可编辑组合框中的选定项目是否为空

转载 作者:行者123 更新时间:2023-11-30 08:24:21 24 4
gpt4 key购买 nike

我有一个可编辑的 ComboBox,用户可以在其中选择一个数据库或键入一个新数据库的名称,然后按 Enter 或按钮 Create 创建它。

我发现 Editable ComboBox 有一个奇怪的行为,如果说在组合框中选择了这样的东西:

1

然后用户像这样删除它:

2

并按下 Enter 键Create 按钮,然后这段代码不足以检查 ComboBox 中是否没有选中的项目>:

if (jDatabaseComboBox.getSelectedItem() == null) {
return;
}

所以我选择这样检查:

if (jDatabaseComboBox.getSelectedItem() == null
|| jDatabaseComboBox.getSelectedItem().toString().isEmpty()) {
return;
}

我的问题是:我检查所选项目的方式便宜吗?有没有更优雅的方式?


这是我最后的做法:

组合框和创建按钮

private void jDatabaseComboBoxActionPerformed(java.awt.event.ActionEvent evt)                                                  
{
final String selectedDatabaseName = jDatabaseComboBox.getSelectedItem().
toString().trim();
if (selectedDatabaseName.isEmpty()) {
return;
}

if (databaseAlreadyExistsInServer(selectedDatabaseName)) {
_currentDatabase = new SQLDatabase(selectedDatabaseName);
updateTableComboBoxes();
} else {
createANewDatabase(selectedDatabaseName);
updateDatabaseComboBoxes();
}
System.out.println();
}

删除按钮

private void jDeleteDatabaseButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                      
final String selectedDatabaseName = jDatabaseComboBox.getSelectedItem().
toString().trim();

if (selectedDatabaseName.isEmpty()) {
return;
}

if (!databaseAlreadyExistsInServer(selectedDatabaseName)) {
return;
}

deleteDatabase(selectedDatabaseName);
updateDatabaseComboBoxes();
System.out.println();
}

我不再检查 null,因为我有它,所以如果 comboBoxes 为空,那么它们将变灰。

最佳答案

更好的方法:

comboBox.getSelectedIndex()

如果值为空或 null 或无效(匹配)值,它将返回 -1。

在这里找到示例代码 Editable ComboBox


--编辑--

点击删除按钮

if (jDatabaseComboBox.getSelectedIndex() == -1) {
System.out.println("Please select a database name.");
} else {
System.out.println("database name is deleted successfully.");
}

关于java - 如何检查可编辑组合框中的选定项目是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23022532/

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