2

フレームがコンテンツ ペインの上に配置されている場合、ユーザーに対する外部の色は JFrame の色です。ここでも、コンテンツ ペインの後にフレームをペイントしていますが、コンテンツ ペインの色が表示されます。なんで?

public class GUI {
    public static void main(String[] args){
        JFrame frame = new JFrame();
        frame.setSize(300,300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        Color myColor = new Color(100,100,100);
        frame.setLocationRelativeTo(null);
        frame.getContentPane().setBackground(myColor);
        frame.setBackground(Color.red);

    }
}
4

1 に答える 1

3

JFrame 自体の背景を設定するべきではありません。はい、できますが、うまく機能しません。

フレーム全体をカバーするコンテンツペインがあるため、「下」の色はすべて覆われます。

すべてのレイアウトとスタイリングは、コンテンツ ペインで行う必要があります。

containerただし、特別なレイアウトなどを使用して、コンテンツ ペインを任意の に設定できます。


また、「コンテンツ ペインの後にフレームを描画する」と言うとき、それは実際には起こっていません。:)コンテンツ ペインの背景を設定した後に背景色を設定していますが、アプリケーション ランタイムによって再描画フラグがトリガーされるまで、実際には再描画されません。

次に、設定されている色を確認し、ペイントします。セッターを呼び出す順序は重要ではありません。

于 2012-11-13T03:45:07.173 に答える