2009-02-27 73 views

回答

5

在上面的例子中,文本字段將正常工作。但是,如果您插入EAST或WEST,它將不起作用。

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 


public class TextFieldTest { 
    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     f.setLayout(new BorderLayout()); 
     JTextField tf = new JTextField(); 
     f.getContentPane().add(BorderLayout.EAST, tf); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 

回到我的問題是:這是否需要是BorderLayout或您是否可以使用其他佈局管理器?如果可以的話,你應該檢查GridBagLayout,你可以有一個元素自動展開(使用重量)來適應整個容器。

+0

我沒有得到任何選票的接受答案? Niiii​​ce! – Ascalonian 2009-03-17 17:54:50

0

它會自動填充到所述容器的寬度,示出例如:

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 


public class TextFieldTest { 
    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     f.setLayout(new BorderLayout()); 
     JTextField tf = new JTextField(); 
     f.add(tf, BorderLayout.SOUTH); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 
+0

不要在擺脫EDT的地方使用擺動組件! – 2009-02-27 14:40:18

1

使用Swing進行編程時,關鍵是要使用一個好的佈局管理器。對我來說,完美的佈局管理器是MigLayout。這只是針對所有佈局需求的最佳一站式解決方案。他們的網站提供了出色的文檔和示例

2

填充整個容器?使用BorderLayout?

container.add(jTextField, BorderLayout.CENTER); 

就這麼簡單。