2011-11-30 144 views
1

我創建了一個顯示按鈕和標籤的網格的java程序,我想知道如何在標籤和按鈕上留下約束,以便在窗口被拖出時不會重新調整大小..任何人都可以請幫助?網格佈局Java

這是我的網格佈局類

package JFrameTester; 

import java.awt.Dimension; 
import java.awt.GridLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 


public class layout extends JFrame { 

    JButton button1,button2,button3; 
    JLabel label1,Label2,Label3; 

    public layout(){ 

    setLayout(new GridLayout(2, 2)); 

    button1 = new JButton ("button1"); 

    add(button1); 

    label1 = new JLabel ("label1"); 
    add(label1); 

    button2 = new JButton ("button1"); 
    add(button2); 

    Label2 = new JLabel ("Label2"); 
    add(Label2); 

    button3 = new JButton ("button1"); 
    add(button3); 

    Label3 = new JLabel ("Label3"); 
    add(Label3); 

     } 


} 

,這是我的主類

public class JFrameTester { 


/** 
* @param args 
*/ 
public static void main(String[] args) { 


    layout Lay = new layout(); 
    Lay.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Lay.setVisible(true); 


    // JFrame frame = new JFrame("BUY COMPUTER"); 

    Lay.setSize(800, 600); 
     //frame.pack(); 
    // frame.setVisible(true); 
    Lay.addWindowListener(new MyWindowListener()); 
} 
} 
+1

你給你的班級名稱'佈局'是錯誤的。因爲根據Java命名約定,類名應始終以大寫字母開頭。 – gprathour

回答

2

放置一個JPanel裏面的標籤和按鈕,然後添加JPanelGridLayoutGridLayout自動調整組件的大小以適應放置單元格的大小,當調整大小時,它將根據需要調整組件的大小。如果將它們放置在JPanel中,那麼該單元中只有JPanel將被調整大小,而不是組件。

編輯

此外,它的Java實踐來命名以大寫字母的所有類,你layout應該是Layout。然而,名稱Layout沒有準確地傳達類Layout的目的,因爲您的類不是a佈局,它是JFrame。也許LayoutFrame將是一個更好的類名。

(這是默認的Java實踐)變量應該是camelcase,首先是小寫字母,後面的單詞是大寫字母,例如, thisIsAVariable。或者,您可以使用下劃線,這是不正常的Java練習,this_is_a_varaible。鑑於Java中的類通常以大寫字母開頭,變量以小寫字母開頭,因此語句layout Lay = new layout();看起來非常奇怪,並且初看起來有點混亂。

+0

謝謝先生 – Led

+0

@LedK沒問題:D –