2012-05-11 16 views
2

私はプロジェクトのための簡単なGUIを嘲笑しました。ラベルとテキストフィールドを見ることができますが、何らかの理由でウィンドウのサイズが変更されていません。ここでJFrameがJPanelに合わせてサイズ変更されていない

は、基本的なランダウンです:

JFrameの作成とのJPanelを追加:

JFrame frame1 = new JFrame("Hotel Reservation App"); 
    frame1.getContentPane().add(rViewPan, BorderLayout.CENTER); 
    frame1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

    frame1.pack(); 
    frame1.setVisible(true); 

これはrViewPanのためのJPanelのコードです:

private void initComponents() { 

    setLayout(new BorderLayout()); 

    arrivalDateTF = new JTextField(); 


    departureDateTF = new JTextField(); 
    roomCategoryTF = new JTextField(); 
    roomQtyTF = new JTextField(); 

    JTextField[] textFields = { arrivalDateTF, departureDateTF, roomCategoryTF, roomQtyTF }; 
    JLabel[] textLabels = { new JLabel("1 : "), new JLabel("2 : "), 
      new JLabel("3 : "), new JLabel("4 : ") 
    }; 

    JPanel displayPan = new JPanel(); 
    GridBagLayout gridBagLay = new GridBagLayout(); 
    GridBagConstraints gridBagC = new GridBagConstraints(); 

    displayPan.setLayout(gridBagLay); 
    SwingUtilities.addTextElementsAsRows(textLabels, textFields, gridBagLay, displayPan); 

    gridBagC.gridwidth = GridBagConstraints.REMAINDER; 
    gridBagC.anchor = GridBagConstraints.EAST; 
    gridBagC.weightx = 1.0; 

    displayPan.add(new JLabel(" "), gridBagC); 

    submitB = new JButton("Soumettre"); 
    displayPan.add(submitB, gridBagC); 

    SwingUtilities.addStdBorder(displayPan, "Reservation"); 
    add(displayPan, BorderLayout.CENTER); 

} 

私は基本的に取得しますウィンドウは適切な高さにサイズが設定されていますが、フィールドは水平に隠されています。

+0

[SSCCE](http://sscce.org/)を投稿するとすぐに役立ちます。 –

答えて

3

..ウィンドウのサイズが変更されていません。

この亜種は、

TestGui

あなたのGUIの振る舞いを作成する方法を見つけ出すことができない場合、私はあなたが&はSSCCEを投稿作る示唆しています。

import java.awt.*; 
import javax.swing.*; 

// TODO don't extend JPanel, just create an instance 
class TestGui extends JPanel { 

    JTextField arrivalDateTF; 
    JTextField departureDateTF; 
    JTextField roomCategoryTF; 
    JTextField roomQtyTF; 
    JButton submitB; 

    TestGui() { 
     initComponents(); 
    } 

    private void initComponents() { 
     setLayout(new BorderLayout()); 

     arrivalDateTF = new JTextField(6); 
     departureDateTF = new JTextField(6); 
     roomCategoryTF = new JTextField(8); 
     roomQtyTF = new JTextField(2); 

     JTextField[] textFields = { arrivalDateTF, departureDateTF, roomCategoryTF, roomQtyTF }; 
     JLabel[] textLabels = { new JLabel("1 : "), new JLabel("2 : "), 
      new JLabel("3 : "), new JLabel("4 : ") 
     }; 

     JPanel displayPan = new JPanel(); 
     GridBagLayout gridBagLay = new GridBagLayout(); 
     GridBagConstraints gridBagC = new GridBagConstraints(); 

     displayPan.setLayout(gridBagLay); 
//  SwingUtilities.addTextElementsAsRows(textLabels, textFields, gridBagLay, displayPan); 
     for (int ii=0; ii<textFields.length; ii++) { 
      displayPan.add(textLabels[ii]); 
      displayPan.add(textFields[ii]); 
     } 

     gridBagC.gridwidth = GridBagConstraints.REMAINDER; 
     gridBagC.anchor = GridBagConstraints.EAST; 
     gridBagC.weightx = 1.0; 

     displayPan.add(new JLabel(" "), gridBagC); 

     submitB = new JButton("Soumettre"); 
     displayPan.add(submitB, gridBagC); 

//  SwingUtilities.addStdBorder(displayPan, "Reservation"); 
     add(displayPan, BorderLayout.CENTER); 
    } 

    public static void main(String[] args){ 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JFrame frame1 = new JFrame("Hotel Reservation App"); 
       frame1.getContentPane().add(new TestGui(), BorderLayout.CENTER); 
       frame1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

       frame1.pack(); 
       frame1.setVisible(true); 
      } 
     }); 
    } 
} 
+0

アンドリューさん、ありがとうございました。何らかの理由で私はsetPreferredSizeのプライベートな定義済みのバージョンを持っていました。何もしていないので、コールは無意味でした。メインBorderLayoutの他のセクションにコンテンツを追加した後、正しく動作するようになりました。 –

+0

*「私はSSPEでプライベートに定義されたバージョンを持っていました。 ;)あなたはそれを整理してうれしい。この瞬間に私が提供できる最善のアドバイスは、コンポーネントの推奨サイズを呼び出したりオーバーライドする必要があると思われる場合は、最初に援助のためにSOに来てください。 :) –

+0

@Andrew Thompsonあなたがカスタマイズされた場所から知っていますか?SwingUtilities2、つまりコード行SwingUtilities.addTextElementsAsRows – mKorbel

関連する問題