0

Excelfile を読み取り、jpanel 内にグラフを含むフレームを作成するクラスがあります。jmenuitem の actionlistener を介してこのクラスを呼び出します。次に、同じファイルを開く同じクラスを呼び出す別のjmenuitemがありますが、別のExcelシートを読み取り、別のグラフを提供します(クラスで変更される唯一の文字列です)。これらの jmenitem を持つ jmenubar は、プログラムが開始される jframe に属します。新しいjframeカードレイアウトに追加されるグラフを作成するjmenuitemsをクリックするたびに、それらをロールできるかどうかを知りたいです。前もって感謝します

これは、jmenuitem がクリックされたときに jframe でグラフを開くために現在使用しているコードです。

public class startup extends JFrame  {   // creates a jframe with some stuff and the jmenubar

public void menu() {
...


                    menuItem.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent event2) {

                        new Thread(new Runnable() {
                                @Override
                                public void run() {
                          new ReadExcel();
                                    ReadExcel.excel(".xls", 0);  // this jmenuitem invokes the class to read the excelfile sheet 0
graphgen.main(null);
                                }
                            }).start();
                        }
                    });

                    subsubmenu1.add(menuItem);


menuItem.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent event2) {

                        new Thread(new Runnable() {
                                @Override
                                public void run() {
                          new ReadExcel();
                                    ReadExcel.excel(".xls", 1);  // this jmenuitem invokes the class to read the excelfile sheet 1

graphgen.main(null);
                                }
                            }).start();
                        }
                    });

                    subsubmenu1.add(menuItem);

....
}


          public static void main(String[] args)
            {


                GUIquery frame = new GUIquery();
                p.add(graphComponent, BorderLayout.CENTER);
                frame.setLayout(new BorderLayout());
                frame.add(p, BorderLayout.CENTER);
                frame.setJMenuBar(GUIquery.createMenuBar());
                frame.pack();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setResizable(true);
                frame.setSize(1600, 1200);
                frame.setVisible(true);


            }



    }

readexcel クラスは、Excelfile の Excel シートを読み取るだけで、graphgen クラスで処理される配列リストを返します。

public class graphgen extends JFrame {

public graphgen() {

        super("Results");



        gen();

    }

    public void gen(){

//creates the graphcomponent

getContentPane().add(graphComponent);
    add(graphComponent);

}

    public static void main(String[] args)
    {


        graphgen frame = new graphgen();
        p2.add(graphComponent, BorderLayout.CENTER);

    frame.add(p2, BorderLayout.CENTER);
        frame.pack();
        frame.setResizable(true);
        frame.setSize(1600, 1200);
        frame.setVisible(true);

}
4

1 に答える 1

1

ここおよびここActionに示すように、ターゲット コンポーネント、ファイル、およびシートをカプセル化するために使用します。選択したシートに基づいてクラスの状態を更新するメソッドを追加します。カード間を移動する例は、こちらこちらでご覧いただけます。ここで引用されているカード レイアウト アクションも参照してください。

于 2013-10-04T15:48:23.593 に答える