7

私のGUIプロジェクトにはJOptionPane、いくつかのコンポーネントを表示するためのメソッドがあります。これらのコンポーネントのうち2つはそれぞれにButtonGroups2JRadioButtonsつあり、最初のグループでは最初のボタンがデフォルトで選択され、2番目のグループでは2番目のボタンがデフォルトで選択されています。 2 番目のグループでは、最初のグループの 2 番目のボタンが選択されるまで、最初のボタンを無効にしたいと考えています。つまり、ユーザーが BG1 のデフォルトの選択に満足している場合、BG2 で選択を行うことはできません。 BG1 での 2 番目の選択は、BG2 で他のオプションを持つことができます。

このタイプの動作は で可能JOptionPaneですか?

のチュートリアルを見たり、JDialogJOptionPaneの調査を行ったりしましたが、これらのどれもこの場合に役立つとは証明されていません。誰かが素晴らしい解決策の方向性を少し教えてくれたら...

4

3 に答える 3

0

一番いいのはJDialogに行くことです

JOptionPane はこれほど多くのコンポーネントをサポートしていないためです。

于 2014-12-17T03:57:56.673 に答える
0

JOption で可能だとは思いません。しかし、JDialogで可能だと思います。

例:

ダイアログを開くと、コマンド JFrame を使用できます(ここでは、ウィンドウ名を記述する必要があります).enable(false)

チェックボックスがtrueの場合、チェックボックスを表示できます。ボタンが表示され、クリックするとボタンが非表示になります

于 2013-04-16T16:49:31.667 に答える
0

elective.addActionListener私が間違った変数を呼び出したステートメントで、cp12代わりにcp6、カットダウンしたコードを以下に投稿しました。すべて問題ありません、ありがとう

    public void displayAddSomething(ArrayList<String> items)
    {
// cut down version only showing the button panels

    // initialising the variables       
    JPanel buttPanel = new JPanel(new GridLayout(0, 1));
    JPanel pointPanel = new JPanel(new GridLayout(0, 1));
    JRadioButton core = new JRadioButton("Core Item: ", true);
    final JRadioButton elective = new JRadioButton("Elective Item: ");
    final JRadioButton cp6 = new JRadioButton("6 Points: ");
    JRadioButton cp12 = new JRadioButton("12 Points: ", true);
    ButtonGroup bg1 = new ButtonGroup();
    ButtonGroup bg2 = new ButtonGroup();

    // adding the buttons to buttPanel  and the button group 1
    buttPanel.add(new JLabel("Select Course Type"));
    buttPanel.add(core);
    buttPanel.add(elective);
    buttPanel.setBorder(BorderFactory.createLineBorder(Color.GREEN, 2));
    bg1.add(core);
    bg1.add(elective);

    // add buttons pointPanel and bg2
    pointPanel.add(new JLabel("Select Credit Points"));
    pointPanel.add(cp6);
    pointPanel.add(cp12);
    pointPanel.setBorder(BorderFactory.createLineBorder(Color.GREEN, 2));
    bg2.add(cp6);
    bg2.add(cp12);

    cp6.setEnabled(false);


    // add action listener for each of bg1 buttons so if event
    // occurs the cp6 button will toggle between enabled and disabled.

    elective.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {   
             cp6.setEnabled(true);
        }});

    core.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            cp6.setEnabled(false);
        }});

    Object[] message = {buttPanel,pointPanel};

    int result = JOptionPane
        .showOptionDialog(
        this,
        message,
        "...some text...",
        JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE,
        null, new String[] { "Submit", "Cancel" }, "Default");

    if (result == JOptionPane.OK_OPTION)
        {
        // collecting all the input values in a string array to pass to
            // another class for processing by the model... 
        }
    else if (result == JOptionPane.NO_OPTION)
        {
             JOptionPane.showMessageDialog(this,
             "You Have Elected Not to do anything At This Time",
             "YOU HAVE COME THIS FAR AND YOU QUIT NOW....",
            JOptionPane.QUESTION_MESSAGE);                     
        }
    }
于 2015-06-26T16:54:14.197 に答える