【问题标题】:Adding a listener to a JCheckBox completely clears JApplet将侦听器添加到 JCheckBox 会完全清除 JApplet
【发布时间】:2015-10-22 03:47:56
【问题描述】:

我有一个包含多个类的 JApplet 程序。 RegPanel、WorkshopPanel、CnferenceGUI、CnferenceHandler 和 CnferenceClient。基本上 RegPanel 和 WorkShop 面板被添加到 CnferenceGUI 中,它还创建并添加了几个小面板。 CnferenceClient 类只是用来启动类来运行小程序。 CnferenceHandler 用于处理 JButtons、JTextArea、JCheckBox 等的动作事件……这是我的问题;

在 CnferenceGUI 类中,我将动作侦听器添加到按钮/组合框,程序运行良好。但是,当我在 JCheckBox 上添加侦听器的代码时,整个小程序将变为空白。有谁知道这是为什么?

这里是 CnferenceGUI 类中的构造函数:

public ConferenceGUI()
   {
       setLayout(new BorderLayout());

       titlePanel = new JPanel();

       titleLabel = new JLabel("Select Registration Options",JLabel.CENTER);

       Font titleFont = new Font("SansSerif", Font.BOLD, 18);

       titleLabel.setFont(titleFont);

       titlePanel.add(titleLabel);

       add(titlePanel, BorderLayout.NORTH);

       regPanel = new RegPanel();
       add(regPanel, BorderLayout.WEST);

       workshopPanel = new WorkshopPanel();
       add(workshopPanel, BorderLayout.EAST);

       buildButtonPanel();
       add(buttonPanel, BorderLayout.SOUTH);

       ConferenceHandler handler = new ConferenceHandler(this);

       regPanel.regTypeComboBox.addItemListener(handler);
       regPanel.regNameTextBox.addFocusListener(handler);

       // This is the line that make the entire applet blank if included
       regPanel.keynoteCheckBox.addItemListener(handler);



   }    

【问题讨论】:

  • 在寻求调试帮助时,本质上是“为什么这段代码没有按预期工作?”帮助,您确实应该创建并发布最短的代码,以便我们能够编译、运行和帮助识别您的问题,minimal reproducible example(请查看链接)。否则,除了提供非常笼统和模糊的建议或参考教程外,我们将无法提供很好的帮助。是的,我要求的不是一件容易或快速的事情,因为它需要你付出相当多的努力,但如果你仍然卡住并需要解决这个问题,那么这将是值得的努力。

标签: java swing event-handling japplet jcheckbox


【解决方案1】:

听起来像是在小程序构建过程中发生了未处理的异常!请验证控制台输出。将处理程序添加到复选框不会导致此类问题。

【讨论】:

  • 确实会导致这样的问题。没有注释行的代码工作得很好,一旦将行添加到小程序中,它就会变成空白。这对我来说毫无意义,但这就是发生的事情。如果有帮助,我正在使用 blueJ。
  • “如果它有帮助,我正在使用 blueJ。” 如果您在发表评论前将近半小时遵循 @HovercraftFullOfEels 提供的建议,那么最有帮助的是......
  • 不需要侵略,我正在修改我的帖子。
  • @StanHarris:我们随时准备为您提供帮助,只要您准备好完成对帖子的修改。
猜你喜欢
  • 1970-01-01
  • 2011-07-06
  • 2021-09-11
  • 2013-02-17
  • 2011-09-28
  • 1970-01-01
  • 2023-03-27
  • 2022-10-20
  • 2016-08-21
相关资源
最近更新 更多