java - 快完成了...一个 JPaneOption 框错误的问题

标签 java

我的任务快完成了。耶耶!但是......我的处理程序有两个问题。首先,我有一个 public void itemStateChanged(ItemEvent e) 方法,该方法应该将注册者姓名打印到文本字段,以及他的注册类型(学生、企业、免费)。我有这个工作,只是它打印两次到文本区域。我不明白。此外,还有一个“计算费用”按钮,用于……计算费用。单击按钮时,操作事件应该检查​​以确保组合框(在名为 regPanel 的类中)没有“请选择注册类型”,即对象数组中的元素 0。按照我现在的方式,如果我不从组合框中选择某些内容(将其保留在元素 0 上),我会收到错误消息,但程序仍然会打印到文本字段。这是不应该的。它只应该打印错误框,然后允许用户做出正确的选择。任何意见,将不胜感激。这是类(class):

public class ConferenceHandler implements ActionListener, FocusListener, ItemListener
{
    protected final static String ERROR_TEXT = "Please enter a name";
    protected ConferenceGUI gui;  //reference the ConferenceGUI panel
    /**Constructor*/
    public ConferenceHandler(ConferenceGUI gui) {this.gui = gui;}     


            if (gui.regPanel.getRegType() == "Please select a type")
                JOptionPane.showMessageDialog(null, "Please select a registration type",
                    "Type Error",JOptionPane.ERROR_MESSAGE);
            //prints to textarea if registrant will be attending keynote or not
            else if (gui.regPanel.regCheckBox.isSelected())
                gui.textArea.append("\nKeynote address will be attended");
            else

做了更多的谷歌搜索,并找出了 itemStateChanged 事件的双重触发问题。删除了所有额外的代码,因为我很确定我需要的只是这里的某种循环。当我放置 while 或 do-while 循环时,所发生的只是 JOptionPane 出现并且不会消失。不过,我需要验证用户是否已输入适当的复选框选择。

最佳答案

I have this working, only it prints twice to the text area.

您仍然没有发布 SSCCE 来演示您在上一个问题中提出的问题。

从实际问题中复制并粘贴几行代码并不能帮助您隔离问题。

作为初学者,您需要学习如何简化问题。一旦你简化了问题,就更容易找到并解决问题。

在这种情况下,一个有效的 SSCCE 大约需要 20 行代码。几行代码用于创建 GUI,几行代码用于添加组件,还有几行代码用于创建 ItemListener。

发布您的 SSCCE,我将发布您问题的答案。这是使用 ItemListener 时的常见错误。我可能可以在不查看 SSCCE 的情况下给您答案,但您需要学习如何在遇到更复杂的问题时创建 SSCCE。所以这个问题是一个很好的起点。

也许可以查看 How to Write an Item Listener 上的 Swing 教程中的部分将帮助您了解正在发生的事情。

关于java - 快完成了...一个 JPaneOption 框错误的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987360/

相关文章:

java - 文件遍历不返回绝对路径,仅返回文件名

java - MapStruct继承,不止一个配置原型(prototype)是application

java - 在EndOfMedia 上更改场景

java - 在新项目启动时,android studio 无法解析符号 R,重建/清理后显示 2 个错误

java - 内部静态类的新实例在 Lollipop 之前的设备中具有不同顺序的变量

java - 无法反序列化实例 Kafka Streams

java - 如何解决我的代码中的 NullPointerException?

java - Spring事务及其与synchronized关键字的交互

java - 如何在单击列表中父级的特定项目时扩展子级?

java - 使用 Maven 通过 Proguard 缩小 Akka