2016-12-05 6 views
0

私はのJPanelとJFrameの間offesetsを入れしようとしていると私はこれに似た何かを得る、 enter image description hereJPanelsとJFrameの間にどのようにオフセットを置くのですか?

enter image description here

、以下のようなデザインをしたいと思い私は、JFrame内の2つのJPanelをどこに置くかというコードを以下に示します。

private static void createAndShowGUI() { 

     JFrame frame = new JFrame("My App"); 

     GridLayout myLayout = new GridLayout(1,2); 
     myLayout.setHgap(10); 

     frame.setLayout(myLayout); 

     JPanel jLeftPanel = new JPanel(); 
     JPanel jRightPanel = new JPanel(); 

     jLeftPanel.setBackground(Color.DARK_GRAY); 
     jLeftPanel.setSize(275, 250); 

     jRightPanel.setBackground(Color.DARK_GRAY); 
     jRightPanel.setSize(275, 250); 

     frame.add(jLeftPanel); 
     frame.add(jRightPanel); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

//  frame.pack(); 
     frame.setSize(600, 550); 
     frame.setVisible(true); 
    } 

デザインを改善するにはどうすればよいですか?

答えて

0

JComponentには境界線を付けることができます。適切な境界線を生成することができるがあります。例えば、

int top=10; 
int left=10; 
int bottom=10; 
int right=10; 
jLeftPanel.setBorder(BorderFactory.createEmptyBorder(top,left,bottom,right)); 

これにより、空の(つまり不透明でない)枠が作成されます。あなたも、特定の色の罫線を持つことができます:

int thickness=10;  
jLeftPanel.setBorder(BorderFactory.createLineBorder(Color.GRAY,thickness)); 

は、他のBorderFactory.create ...メソッドをチェックアウトし、あなたがより複雑なものが必要な場合、あなたはjavax.swing.border.Borderインタフェースの独自の実装を作成することができます。

+0

回答ありがとうございます。左パネルの右下に2つのパラメータ(幅と高さ)を取り、右のパネルに図形を描画するボタンを配置するにはどうすればよいですか?私は最後の3時間、これについて苦労している、少し助けに感謝します。 – Chak

+0

遅く返事を申し訳ありません。左パネルにBorderLayoutを使用し、2つの内部パネル、入力テキストフィールドの中央にGridLayoutパネル、ボタンのために南にFlowLayoutパネルを追加します(FlowLayoutは右揃えできます)。右側では、JPanelをサブクラス化し、オーバーライドされたJComponent.paintComponent()メソッドでFigureを直接描画します。また、Oracleには[カスタム塗装コンポーネントのチュートリアル](https://docs.oracle.com/javase/tutorial/uiswing/painting/)があります。 –

+0

また、複雑なレイアウトを作成する場合は、AWT/Swingのオンボードレイアウトマネージャは非常に限られており、大規模に使用するのは面倒です。第三者のレイアウトマネージャ、特に[JGoodies FormLayout](http://www.jgoodies.com/freeware/libraries/forms/)を調べることをお勧めします。 –

関連する問題