2016-04-14 18 views
0

私はプログラミングをスイングするのが初めてです。私はJtabbedpaneを作成し、4個のjpanelを追加しました。スイングで複数のjpanelタブを使用してコードを整理する方法

4つのjpanelのすべてのボタンとラベルが同じJavaクラスにあり、見た目が乱雑になり始めています。私はIntellijを使用しています。 1つのパネルに関連するすべてのアイテムとイベントをそれ自身のクラスに入れることができれば、4つのパネルの4つのクラスと、メインフレームのそれらのクラスへの参照だけがいいでしょう。ほとんどのコードがIDEによって生成されるため、これを行う方法がわかりません。

これを行う方法またはこれを行うチュートリアルがある場合は、私にお知らせください。

+0

:あなたのメインJFrameの中でそのパネルを使用するように次に

// New class file named testPanel.java public class testPanel extends JPanel{ // Constructor public textPanel(){ // Add an example button JButton btn_exit = new JButton("Exit"); btn_exit.addActionListener(new ExitButtonListener()); buttons.add(btn_exit); } // Private inner class which does event handling for our example button private class ExitButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e){ System.exit(0); } } // Add whatever other code you like here or above or anywhere else :) } 

を、あなたはこのようにそれを集約することができますあなたは複雑なGUIを構築しています。コードは読むことができず、維持不能です。通常、Swingで通常編集可能なコンポーネントの多くのプロパティを変更することはできません。私の提案は、Intellijの自動コードジェネレータなしで独自のGUIを作成することです。 –

答えて

0

はい、これを簡単に解くことができます。コードはどこにでも新しいパネルを生成します。おそらく "ビルド"メソッドとして、それを取り出して別のクラスの構造体を作ることができます。例では、このようなものになります。私は場合のIntelliJの自動SwingのGUIジェネレータを使用して助言しません

private testPanel pnl_test = new textPanel(); 
// You can place this in the constructor 
// for your JFrame without the "MyJFrame." 
// But for demonstration purposes I will include it 
MyJFrame.add(pnl_test); 
// Or if you were placing a panel inside of another panel, 
// you can use the same method associated with a JPanel object 
MyJPanel.add(pnl_test); 
関連する問題