0

我刚刚将我的进度上传到程序中。请看一下,看看它缺少什么。另外,请忽略其中字符串中的蹩脚笑话。可从此链接下载: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

4 回答 4

0

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

如果我明白你在问什么,这就是if ... else if ... else if ... (etc) ... else声明的重点。当其中一个条件匹配时,不会执行任何其他块。所以看起来你只需要添加elses 来匹配你if的 s。例如:

// 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 语句之后,您已经知道它已被选中,无需再次检查。

于 2012-10-06T00:29:14.410 回答
0

我认为,如果您询问如何在达到条件后停止操作,您需要做的就是在代码中添加一个 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 教程。具体查看如何使用单选按钮部分,看看这是否有助于您了解如何设计它。

如何使用单选按钮

于 2012-10-02T03:12:55.360 回答
0

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

于 2012-10-02T01:27:56.540 回答
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. 如果(jRadioButton1.isSelected())

  3. 如果(jRadioButton2.isSelected())

  4. 别的

于 2021-01-01T17:26:36.907 回答