0

私は3つのJComboBoxを持つJPanelを持っています。ここに私が書いたコードがあります:

public class Main {

private static String pat_order;
private static String PS_selection;
private static String ovlp_selection;


public static void main(String args[]) throws FileNotFoundException, IOException {
    Date start_time = new Date();
    try {
        GridBagConstraints gbc = new GridBagConstraints();
        final JComboBox jc = new JComboBox();
        jc.addItem("ARR");
        jc.addItem("SRR");

        final JComboBox jc1 = new JComboBox();
        jc1.addItem("RR");
        jc1.addItem("IQC");

        final JComboBox jc2 = new JComboBox();
        jc2.addItem("YES");
        jc2.addItem("NO");

        JPanel myPanel = new JPanel(new GridBagLayout());
        myPanel.add(jc, gbc); 
        myPanel.add(jc1, gbc); 
        myPanel.add(jc2, gbc);

        jc.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {
                String order = (String) jc.getSelectedItem();
                pat_order = order;
            }
        });


        jc1.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {

                String PS_method = (String) jc1.getSelectedItem();
                PS_selection = PS_method;
            }
        });


        jc2.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {

                String ovlp_user = (String) jc2.getSelectedItem();
                ovlp_selection = ovlp_user;
            }
        });


        if (pat_order == "ARR") {
            Arrays.sort(patterns_array, new ColumnComparator(0));
        } else if (pat_order == "SRR") {
            Arrays.sort(patterns_array, new ColumnComparator(1));
        }

       if (PS_selection == "RR") {
           System.out.println("RR");
                        } else if (PS_selection == "IQC") {
                              System.out.println("IQC");
                            }
       if (ovlp_selection == "YES") {
            Overlap a = new Overlap(Xdisc, final_patterns, k, Yresid, Xresid, projectname, pat_order, PS_selection);
        }

   } catch (Exception e) {
        System.err.println("Error: " + e.getMessage());
    } finally {
    }
    }
    }

問題は、最初の JComboBox は正常に動作しているが、2 番目と 3 番目の JComboBox は何もしていないことです。この問題で私を助けていただければ幸いです。

4

2 に答える 2

2

UI をコンソール プログラムのように実行しているようです。UI はこのようには機能せず、イベントに応答します。これらのイベントは、任意の順序でいつでも発生する可能性があります...

ダイアログは、実行の流れを制御する優れた方法です。ダイアログが閉じられるまでコードをブロックするため、結果を確認して適切なアクションを実行できます。

詳細については、ダイアログの使用方法をご覧ください...

そこにいる間、理解する必要がある概念の詳細を説明する、Creating a UI with Swingを参照することもできます。

UI が画面に表示されるために何らかのウィンドウが必要であるという事実のように

于 2013-05-07T05:56:54.383 に答える
0

ActionListener代わりに追加してみてくださいItemListener

于 2013-05-07T06:01:59.730 に答える