java - if 语句检查 Swing 组件是否为空

标签 java swing user-interface if-statement

我当前正在编写 if 语句来检查 GUI 中的 swing 组件(JtextField 和 JcomboBox (x2))是否为空。我最初只是针对 JTextField 和两个 JComboBox 为空的情况做了一个 if 语句,因此显示错误对话框:

  if (NameOfCruise.equals("") && startLValue.equals("") && endLValue.equals("")) {
  JOptionPane.showMessageDialog(Frame2,
         "Please Complete Form.", "Error",
         JOptionPane.ERROR_MESSAGE);
               System.out.print("Please Complete Form.");
               Frame2.setVisible(true);
                    } 

然而,经过进一步思考,我发现还有更多的场景我没有考虑到。我意识到我需要以下场景的错误消息: 1. Cruise Name、startL 或 endL 值均留空。 2. 如果 Cruise Name 留空,但 StartL 和 EndL 都被选中。 3. 如果 Cruise Name & StartL 留空,但 EndL 选择。 4. 如果 Cruise Name 和 EndL 留空,但 StartL 选择。

&可能还有更多我还没有意识到的。我开始实现上述 if 语句,但遇到了问题。

这是迄今为止我的代码:

 // 2. Error message CruiseName left empty but StartL and EndL are both selected.
  if(NameOfCruise.equals("") && !startLValue.equals("") || !endLValue.equals("")){
          JOptionPane.showMessageDialog(Frame2,
          "Please enter Cruise Name.", "Error",
             JOptionPane.ERROR_MESSAGE);
             System.out.print("Name of Cruise not entered. Please enter Cruise Name.\n");
             Frame2.setVisible(true);
                        } 

 //  3. Error message if Name of Cruise & StartL left empty but EndL is selected.
  if(startLValue.equals("") && NameOfCruise.equals("") || !endLValue.equals("")){
  JOptionPane.showMessageDialog(Frame2,
         "Please Select a Start Location.", "Error",
         JOptionPane.ERROR_MESSAGE);
         System.out.print("Select a start location.\n");
         Frame2.setVisible(true);
              } 

问题:

如果您查看上面的代码,我测试 (3) 的方法是将 Cruise 名称和 StartL 位置留空并输入 EndL 值。不过,我从任务 (2) 中提出了错误对话框 - 这是合理的,因为巡航名称为空。

问题: 1. 如何编写 if 语句以便为每种情况显示适当的错误消息?目前,我每条消息都会收到两个错误对话框。 2. 有没有更好、更有效的方法来编码这些场景,而不是为每种情况使用 if 语句。 3.你能建议我缺少的任何场景吗?

最佳答案

我要做的是,不要制作一万亿个不同的 if 语句,只需制作 3 个。一个用于 StartL 一个用于 EndL 和一个用于 NameOfCruise。它更紧凑、更简单,而且您不必为每个不同的组合场景创建 if 语句。

关于java - if 语句检查 Swing 组件是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408649/

相关文章:

java - 在写入 JTextField 时更新 JLabel,我应该使用哪个事件?

ios - 让用户确认 UIActionSheet 操作是糟糕的设计吗?

jquery - jquery ui 自动完成中的 xml 响应中的 CSS

java - 从外部应用程序调用 portlet 操作

java - 如何为 tomcat keystore 安装 SSL 证书

java - 在没有jdk或jre的机器上运行.jar文件

java - 用鼠标绘图

Java KeyListener 不起作用

c++ - 我正在尝试将 3D 模型查看器集成到我的 GUI 中,但还没有找到一个可以让我轻松完成此操作的库。有什么建议么?

java - 使用时间延迟将 Swing 组件中字符串数组的内容显示为迭代。 JAVA