[英]Java FlowLayout - Margin/padding of specific elements?
我是Swing的新手,我正在嘗試制作一個GUI。 使用Netbeans的GUI創建者的東西,我設法制作了我喜歡的東西。 但是我使用編輯器讓我感覺很糟糕,所以現在我嘗試使用代碼進行相同的設計。 這是我想要制作的圖片: 現在我只專注於創建“標准”部分(是的,我知道我在圖片中拼錯了)這是我目前所擁有的: 我用紅色突出顯示了我想增加保證金的地方:
我來自網絡開發,增加利潤是我想要做的。 如果這是不正確的術語,請通知我。 這是我目前使用的代碼:
public class Criteria extends JPanel {
JLabel JobLabel = new JLabel();
JLabel BoxLabel = new JLabel();
JLabel PartLabel = new JLabel();
JTextField JobInput = new JTextField();
JTextField BoxInput = new JTextField();
JTextField PartInput = new JTextField();
public Criteria() {
setLayout(new FlowLayout(FlowLayout.LEADING));
setBorder(BorderFactory.createTitledBorder("Criteria"));
JobLabel.setText("Job");
JobLabel.setLabelFor(JobInput);
BoxLabel.setText("Box");
BoxLabel.setLabelFor(BoxInput);
PartLabel.setText("Part");
PartLabel.setLabelFor(PartInput);
JobInput.setColumns(8);
BoxInput.setColumns(8);
PartInput.setColumns(8);
add(JobLabel);
add(JobInput);
add(BoxLabel);
add(BoxInput);
add(PartLabel);
add(PartInput);
}
}
我不知道如何為這些組件添加保證金,所以非常感謝幫助。 如果我無法通過FlowLayout實現此效果,請告訴我應該使用的是什么。
擺動傾向於稱邊距或邊界“差距”。 FlowLayout
類(以及一些其他布局類)允許您在其構造函數中設置水平和垂直間隙,如下所示:
private static final int PADDING = 3; // for example
...
setLayout(new FlowLayout(FlowLayout.LEADING, PADDING, PADDING));
但是,這會在標簽及其文本框之間添加填充,但您可以將每個對包裝在JPanel
(可能使用FlowLayout
)。 我會為此創建一個自定義組件類。
您應該考慮使用EmptyBorder為您的組件“填充”。 如果JPanel或其他組件周圍需要多種類型的邊框,則可以創建復合邊框或嵌套JPanel。 對於組件之間的間隙,您可以使用如上所述的FlowLayout設置,或者可以使用Box類中的支柱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.