java JButton操作事件中的If-else条件

enyaitl3  于 2023-01-29  发布在  Java
关注(0)|答案(4)|浏览(112)

我刚刚把我的进度上传到了程序里。请你看看,看看里面缺了什么。另外,请你在做的时候忽略掉里面字符串里的蹩脚笑话。它可以从下面的链接下载: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
     }
}
zbsbpyhn

zbsbpyhn1#

每当你想清理文本区域时,使用JTextField.setText("")。注意主要问题-发布一些代码。

9bfwbjaz

9bfwbjaz2#

在读取了最里面的一行或最后一行代码后,如何阻止JButton的ActionEvent方法重复阅读嵌套的if-else条件的第一层?
如果我理解了您的问题,这就是if ... else if ... else if ... (etc) ... else语句的全部意义。当其中一个条件匹配时,其他块都不会执行。因此,看起来您只需要添加else来匹配您的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语句之后,您已经知道它被选中了,不需要再次检查。

ego6inou

ego6inou3#

我认为如果你想知道如何在遇到条件时停止操作,你所需要做的就是在代码中添加一个return语句,例如,如果按钮1被按下,显示消息,然后添加一个return语句,这将导致代码退出该方法,而不进入另一个if语句。
也许你想用一个哈希表或者列表来存储你的选择,每次你做了一个选择,把它添加到列表中。然后你总是可以通过获取列表的最后一个元素来找到最后一个选择。我不真实的清楚你想做什么,但是也许这会给予你一些想法。
我在这里写了一个小程序,它有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

7qhs6swi

7qhs6swi4#

如果我能理解你的意思
也许这就足够了:

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.如果(jRadioButton1.isSelected()&& jRadioButton2.isSelected())
1.如果(jRadioButton1.isSelected())
1.如果(jRadioButton2.isSelected())
1.否则

相关问题