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

JTextField.setText("")テキスト領域をクリーンアップする場合はいつでも使用できます。主な問題について-いくつかのコードを投稿してください。

于 2012-10-02T01:27:56.540 に答える
0

コードの最も内側の行または最後の行が読み取られると、JButton の ActionEvent メソッドがネストされた if-else 条件の最初の層の読み取りを繰り返すのを停止するにはどうすればよいですか?

あなたが何を求めているのか理解できれば、これがif ... else if ... else if ... (etc) ... else声明の要点です。条件の 1 つが一致すると、他のブロックは実行されません。elseしたがって、 s に一致するように 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
     }
}

ただし、コードに問題があります。が選択されている場合、なぜ 2 回チェックするのjRadioButton1ですか? 最初の if ステートメントの後では、それが選択されていることが既にわかっているので、再度確認する必要はありません。

于 2012-10-06T00:29:14.410 に答える
0

条件にヒットしてもアクションを停止する方法を尋ねる場合は、コードに return ステートメントを追加するだけでよいと思います。たとえば、ボタン 1 が押された場合、メッセージを表示してから return ステートメントを追加すると、コードはそのメソッドを終了し、他の if ステートメントには到達しません。

ハッシュやリストのようなものを使用して選択を保存し、選択が行われるたびにそれをリストに追加したい場合があります。次に、リストの最後の Element を取得することで、いつでも最後の選択を見つけることができます。あなたがここで何を作ろうとしているのかはよくわかりませんが、おそらくそれはあなたにいくつかのアイデアを与えるでしょう.


ここでは、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 に答える