JButton ActionEvent中的if-else条件

时间:2012-10-02 01:24:17

标签: java string if-statement jbutton jradiobutton

我刚刚将我的进度上传到该计划中。请看一看,看看它缺少什么。另外,当你在它的时候,请忽略它中的弦乐的蹩脚笑话。可以从以下链接下载:http://www.mediafire.com/?n0sp8v22egfsx7t

请注意,我使用NetBeans轻松制作程序。

编辑:

如果读取最内行或最后一行代码后,如何停止JButton的ActionEvent方法重新读取嵌套if-else条件的第一层?

此外,作为一个额外的问题,我如何提示系统在选择之间做出选择,一旦给出选择,从字面上分支出来?显然我正在做的只是将这些字符串块连接在一起而不是将它们分支出去,因此一旦要显示与前一个代码块相关的新代码块,就会显示迭代。 。

段:

// Strings of text displayed on the JTextArea is shown here
// prompting to choose between two options: example, left or right

jButton1.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
       jButton1actionPerformed(e);
    }
});


private void jButton1actionPerformed(ActionEvent e) 
{                                             
    if(jRadioButton1.isSelected()) 
    {     
       // Display strings of text as response to the choice left
       // Another options to choose from here:, example, up or down
       JTextArea.setText("You've chosen: " );
       JTextArea.append("Now choose between: ");

       if (jRadioButton1.isSelected())
       {
         JTextArea.append("From first choice, choose between: ");
         // stop from here
       }

       else if (jRadioButton2.isSelected())
       {
         //same as above
       }
     }

     if (jRadioButton2.isSelected())
     {
        // Same as above
     }
}

4 个答案:

答案 0 :(得分:0)

每当您想要清理textarea时,请使用JTextField.setText("")。 关于主要问题 - 发布一些代码..

答案 1 :(得分:0)

我想如果你问到如何在遇到这种情况后如何停止操作,你需要做的就是在你的代码中添加一个return语句。例如,如果按下按钮1,则显示消息,然后添加一个return语句,这将导致代码退出该方法而不会转到另一个if语句。

也许您想使用Hash或List之类的东西来存储您的选择,每次做出选择时,都要将它添加到List中。然后,您总是可以通过获取列表的最后一个元素来找到最后的选择。我不清楚你要在这里做什么,但也许这会给你一些想法。


我在这里写了一个小程序,里面有2个单选按钮和一个提交。单击“提交”时,它将根据单选按钮选择更新窗口中的文本。

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;


public class MyWindow extends JFrame {

    private JPanel contentPane;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MyWindow frame = new MyWindow();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public MyWindow() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        final JRadioButton rdbtnNewRadioButton = new JRadioButton("Choice 1");
        rdbtnNewRadioButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        rdbtnNewRadioButton.setSelected(true);
        rdbtnNewRadioButton.setBounds(5, 7, 424, 23);
        contentPane.add(rdbtnNewRadioButton);

        JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("Choice 2");
        rdbtnNewRadioButton_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
        });
        rdbtnNewRadioButton_1.setBounds(5, 33, 109, 23);
        contentPane.add(rdbtnNewRadioButton_1);

        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(rdbtnNewRadioButton);
        buttonGroup.add(rdbtnNewRadioButton_1);

        final JTextArea textArea = new JTextArea();
        textArea.setBounds(57, 80, 321, 94);
        contentPane.add(textArea);

        JButton btnNewButton = new JButton("Submit");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (rdbtnNewRadioButton.isSelected()) {
                    textArea.setText("Choice 1 Selected.");
                } else {
                    textArea.setText("Choice 2 Selected.");
                }
            }
        });

        btnNewButton.setBounds(135, 212, 89, 23);
        contentPane.add(btnNewButton);
    }
}

查看使用按钮的Java教程。具体来看看如何使用单选按钮部分,看看是否能说明你如何设计它。

How to use Radio Buttons

答案 2 :(得分:0)

  

如果读取最内行或最后一行代码后,如何停止JButton的ActionEvent方法重新读取嵌套if-else条件的第一层?

如果我明白你在问什么,这就是if ... else if ... else if ... (etc) ... else陈述的重点。当其中一个条件匹配时,不执行任何其他块。因此,您只需添加else s即可与if匹配。例如:

// Strings of text displayed on the JTextArea is shown here
// prompting to choose between two options: example, left or right

jButton1.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
       jButton1actionPerformed(e);
    }
});


private void jButton1actionPerformed(ActionEvent e) 
{                                             
    if(jRadioButton1.isSelected()) 
    {     
       // Display strings of text as response to the choice left
       // Another options to choose from here:, example, up or down
       JTextArea.setText("You've chosen: " );
       JTextArea.append("Now choose between: ");

       if (jRadioButton1.isSelected())
       {
         JTextArea.append("From first choice, choose between: ");
         // stop from here
       }

       else if (jRadioButton2.isSelected())
       {
         //same as above
       }
     }

     else if (jRadioButton2.isSelected()) // ***** Note the "else" added here.
     {
        // Same as above
     }
}

但是,您的代码存在问题。如果选择了jRadioButton1,为什么要检查两次?在第一个if语句之后,您已经知道它已被选中,不需要再次检查。

答案 3 :(得分:0)

如果我能理解你在问什么

也许这就足够了:

private void jButton1actionPerformed(ActionEvent e) 
{                                             
    if(jRadioButton1.isSelected()) 
    {     
       // Display strings of text as response to the choice left
       // Another options to choose from here:, example, up or down
       JTextArea.setText("You've chosen: " );
       JTextArea.append("Now choose between: ");

//       if (jRadioButton1.isSelected())
//       {
//         JTextArea.append("From first choice, choose between: ");
//        // stop from here
//       }

       else if (jRadioButton2.isSelected())
       {
         //same as above
       }
     }
// The above else if block covers what you are doing bellow
//     if (jRadioButton2.isSelected())
//     {
//        // Same as above
//     }
}

如果你想从两个不同的 jRadioButton 进行分支并记住给定的代码,我会建议 4 条可能的路径

  1. if ( jRadioButton1.isSelected() && jRadioButton2.isSelected())

  2. if( jRadioButton1.isSelected())

  3. if( jRadioButton2.isSelected())

  4. 其他