2016-10-14 24 views
0

色を変更するJPanelを取得できません。私はまた色を変えるためにJFrameを得ることができません。私はオンラインで見ました...そして、私はJPanelとJFrameを設定するためのほぼ同じコードを持つ別のプログラムを持っています。私はそれを働かせることができません。JFrameまたはJPanelの背景色を変更できません

public static void main(String[] args){ 
    JFrame frame = new JFrame("title"); 
    frame.getContentPane().setBackground(Color.WHITE); 
    Drawing drawing = new Drawing(2); 
    drawing.setBackground(Color.CYAN); 
    frame.add(drawing); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(500, 500); 
    ... 

EDIT:ここ

は私の主な方法であり、後で私のメインの方法でここ

frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 

あるのJPanelのコンストラクタさ:

public class Drawing extends JPanel { 
    // instance variables 
    public Drawing(int n){ 
     setOpaque(true); 
     setPreferredSize(new Dimension(300, 300)); 
     setBackground(Color.PINK); 
     ... 

と背景色デフォルトのグレーのままです。

+0

@SimonJensenのEclipse – XSeven

+1

作業、[MCVEを投稿]または[Short、Self Contained、Correct Example](http://www.sscce.org/)を参照してください。 –

答えて

2

私は、Eclipseを使用したクイックウィンドウビルダーアプリケーションの作成や色の設定に問題はありませんでした。

私が気付いたことは、frame.add(drawing)であり、frame.getContentPane().add(drawing)ではないことです。
また、フレームをframe.setVisible(true)で表示することも決してありません。ここで

は、私が使用したコードは次のとおりです。

public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      try { 
       MainWindow window = new MainWindow(); 
       window.frame.setVisible(true); 
      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 

/** 
* Create the application. 
*/ 
public MainWindow() { 
    initialize(); 
} 

/** 
* Initialize the contents of the frame. 
*/ 
private void initialize() { 
    frame = new JFrame(); 
    frame.getContentPane().setBackground(Color.GREEN); 
    frame.setBounds(100, 100, 450, 300); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    JPanel panel = new JPanel(); 
    panel.setBackground(Color.CYAN); 
    panel.setBounds(10, 171, 128, 81); 
    frame.getContentPane().add(panel); 
} 

EDIT:早くあなたのコードの追加絵イラストが良いのヘルプについて

enter image description here

+0

これは私のために働く。しかし、なぜ私の古いコードは動作しませんか? – XSeven

+0

私は後でパネルを上記のメソッドで表示するように設定したことを忘れていましたが(上記の私の投稿を編集しました)、背景は灰色で表示されます。 – XSeven

+0

私はここであなたに完全に正直になるつもりですが、私はあなたがこの問題を抱えているのか分かりません。あなたのコードを日食にコピーしました。コードを追加したり編集したりしませんでした。これを説明する画像が追加されました。私の推測では、あなたの他のコードがそれを乱しているのです。 –

関連する問題