我在理解應用程序的行爲時遇到了問題。我想創建一個簡單的窗口(分別爲250px和750px寬度),創建一個簡單的窗口(1000x700px)。我嘗試下面的代碼:Java Swing:寬度問題
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Example extends JFrame
{
private static final long serialVersionUID = 1L;
public Example()
{
this.setSize(1000, 700);
this.setTitle("Example");
this.setResizable(false);
this.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
JPanel navigation_panel_wrap = new JPanel();
JPanel content_panel_wrap = new JPanel();
navigation_panel_wrap.setPreferredSize(new Dimension(250, 700));
content_panel_wrap.setPreferredSize(new Dimension(750, 700));
content_panel_wrap.setBackground(Color.green);
navigation_panel_wrap.setBackground(Color.red);
this.getContentPane().add(navigation_panel_wrap);
this.getContentPane().add(content_panel_wrap);
}
public static void main(String[] args)
{
Example example = new Example();
example.setVisible(true);
}
}
正如你可以看到我手動設置的佈局管理器JFrame
(FlowLayout
而不是BorderLayout
與零水平和垂直間距)。當然,我可以使用BorderLayout
並使用add()
方法與BorderLayout.EAST
和BorderLayout.WEST
參數,但我想了解FlowLayout
有什麼問題。 當我運行我的應用程序,我得到以下(無綠色JPanel
):
如果我減少的寬度,例如,content_panel_wrap
和利用它744px代替750px,一切正常。 所以問題是 - 這些奇怪的6像素是什麼?我不確定這個值對於所有的操作系統是不變的,所以我想了解它的起源。
看到這個[Q&A](http://stackoverflow.com/q/7229226/230513)。 – trashgod
非常感謝,非常有幫助的鏈接。 –