2013-11-15 81 views
0

我該如何使用GridLayout或其他Gridxxx來做到這一點?我可以使用GridLayout,JLabel,JTextField不同大小的JTextField嗎?

enter link description here

我想添加到面板的JLabel和JTextField中具有不同的尺寸。

可能嗎?

我有這段代碼。

import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.TitledBorder; 
class TEST_rozlozenia { 

TEST_rozlozenia() { 
    JPanel panel = new JPanel(); 
    JPanel lFields = new JPanel(new BorderLayout(2,2)); 
    JPanel labels = new JPanel(new GridLayout(0,1)); 
    labels.setBorder(new TitledBorder("Labels")); 
    JPanel fields = new JPanel(new GridLayout(0,1)); 
    fields.setBorder(new TitledBorder("TextFields")); 

    labels.add(new JLabel("Label")); 
    labels.add(new JLabel("Label1")); 
    fields.add(new JTextField(55)); 
    fields.add(new JTextField(10)); 

    lFields.add(labels, BorderLayout.WEST); 
    lFields.add(fields, BorderLayout.EAST); 

    panel.add(lFields, BorderLayout.NORTH); 

    JOptionPane.showMessageDialog(null, panel); 
} 

public static void main(String[] args) throws Exception { 
    SwingUtilities.invokeLater(new Runnable(){ 
     @Override 
     public void run() { 
      new TEST_rozlozenia(); 
     } 
    }); 
} 
} 

怎麼了?

我沒有不同的textfields大小。

+2

你可以看看['GridBagLayout'](http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html) – MadProgrammer

+0

也可以考慮['GroupLayout'](http:// docs.oracle.com/javase/tutorial/uiswing/layout/group.html),見[這裏](http://stackoverflow.com/a/8504753/230513)。 – trashgod

+0

但JTextField1大小必須與JTextField2大小不同。所有示例都具有相同大小的JTextField。 – NINJO

回答

0

所有的例子已經JTextField的大小相同

然後用不同的尺寸來製作你的文本字段:

JTextField textField1 = new JTextField(10); 
JTextField textField2 = new JTextField(20); 

構造函數中的參數將提出建議,以有多大文本領域應該是。所以任何尊重組件首選大小的佈局管理器都會使用這些信息。