2016-12-16 8 views
1

私はかなり新しいです。私は自分のプログラムのインターフェイスの大部分であるクラスを作成しました。メインクラスのフレームにパネルクラスを追加する方法

これは私が試したことですが、私はプログラムを実行してもパネルは表示されていませんがエラーは発生していません。これは私のメインクラスにPanelクラスを追加したいのです。 :

パネルクラス:

public class PanelDriver extends JPanel { 
     public JPanel p1, myg; 
     public PanelDriver() { 

     JPanel p1 = new JPanel(); 
     p1.setBackground(Color.CYAN); 

     // Graphicsa myg = new Graphicsa(); 


    JTextArea txt = new JTextArea(5,20); 
    txt.setText("test"); 
    p1.add(txt); 

    } 
} 

メインクラス:

public class GraphicMain { 

    public static void main(String[] args) { 
    JFrame frame = new JFrame("My Program"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(600, 600); 

    PanelDriver panels = new PanelDriver(); 
    frame.getContentPane().add(panels); 

    GridLayout layout = new GridLayout(1,2); 
} 
+0

コードはコンパイルされていません。 – Azodious

+0

@Azodiousそれは今すべきです、申し訳ありません! – j1234567

+0

@Azodious 'Graphicsa myg = new Graphicsa();'は実行しますが、実際には何も起こらないxD – XtremeBaumer

答えて

0
public class CustomerTest extends JPanel { 

    public CustomerTest() { 
     super(); 
     this.setBackground(Color.CYAN); 
     this.setLayout(new BorderLayout()); 
     JTextArea txt = new JTextArea(); 
     txt.setText("test"); 
     this.add(txt); 
     this.setVisible(true); 

    } 
} 

してからメインクラスに設定し、これを使用する:あなたはスーパーコール(あなたはJPanelのを拡張するので、あなたが新しいものを作成する必要はありません)、このようなあなたPanelクラスでレイアウトを必要としますフレームが表示され、コンテンツが表示されます。

JFrame frame = new JFrame("My Program"); 
    GridLayout layout = new GridLayout(1, 2); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(600, 600); 

    CustomerTest panels = new CustomerTest(); 
    frame.getContentPane().setLayout(layout);; 
    frame.add(panels); 
    frame.setVisible(true); 
0

あなたPanelDriverクラスはp1JPanelが作成されますが、何もそれを追加しません:あなたはそれを作成した後、フレームのレイアウトを設定する必要があります。

少なくともPanelDriver自身にそれを追加します。

this.add(p1); 

注意をあなたのコードがあるとして、フレームもその部分を修正する@XtremeBaumerで答えを見て、表示されていないこと。

+0

まだプログラムは何も表示しません – XtremeBaumer

関連する問題