【问题标题】:ActionEvent for jButton given a jRadioButton option给定 jRadioButton 选项的 jButton 的 ActionEvent
【发布时间】:2012-09-30 12:14:14
【问题描述】:

所以基本上,我在这里尝试使用 GUI 制作一个简单的程序,让您在给定两个 jRadioButtons 的情况下做出选择,这两个按钮中的任何一个都会以类似于视觉小说的方式引导相应的故事情节。然而,问题是我无法将 jButton 的想法与 jRadioButton 的选择联系起来。

这个概念是这样的:在一个框架中,有一个 jTextArea 显示文本字符串,形成一个故事情节,它提供了从这里和那里选择的两个选项,由两个 jRadioButton 表示,然后必须由一个 jButton 执行。

到目前为止,我在两个 jRadioButtons 的 ActionListener 中放置的唯一逻辑是,一旦单击 jRadioButton 而 jButton 故意为空,则必须禁用另一个。任何人有任何他/她想分享的类似程序或模块,至少,从编程上讲这个逻辑?

【问题讨论】:

  • radiobutton tutorial。将它们放在ButtonGroup 中,默认情况下您将拥有选择
  • 到那时 jButton 应该如何作为 OK 操作的按钮?
  • 可以通过radiobutton API查看选择了哪个单选按钮。不确定我是否完全理解这里的问题
  • 我需要一个示例程序来显示:给定两个选项,选择一个。使用 jRadioButton 选择一个,其中两个将在触发 jRadioButton 以及单击 jButton 时执行。
  • 需要一个显示示例程序阅读swing标签wiki中引用的教程中的相应章节-它包含所有Swing组件的所有基本用例的示例代码

标签: java swing jbutton actionlistener jradiobutton


【解决方案1】:

我们通常使用 RadioButtons 在几个选项之一之间进行选择,并且一次只能选择一个按钮。要获得此功能,您需要将按钮添加到 javax.swing.ButtonGroup 。这是一个简单的例子:

 //Fields declared in your main GUI class
 JRadioButton option1,option2;
 JButton goButton; //executes the "Story"

 //Constructor code or place in init() method that constructor calls:
 {
    //initialize buttons and place them in your frame.
    ButtonGroup buttonGroup = new javax.swing.ButtonGroup();
    buttonGroup.add(option1);
    buttonGroup.add(option2);
    buttonGroup1.setSelected(option1.getModel(), true);
    goButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            goButtonActionPerformed(evt);
        }
    });

}

private void goButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
     if(option1.isSelected()) {                
         //place text in your text area
     }
     if(option2.isSelected()) {                
         //place different text in your text area
     }
}                                            

【讨论】:

  • +1 表示ButtonGroup;还可以考虑引用相关教程并重新格式化以减少虚假空白。
  • 谢谢,我现在明白了。
猜你喜欢
  • 2015-05-21
  • 2012-09-22
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 2012-10-12
相关资源
最近更新 更多