本文介紹了Java FlowLayout-特定元素的邊距/填充?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我對Swing非常陌生,我正在嘗試制作一個圖形用戶界面。
使用NetBeans的圖形用戶界面創(chuàng)建器,我設(shè)法制作了我喜歡的東西。但這讓我感覺很糟糕,我使用了這個編輯器,所以現(xiàn)在我正試圖用代碼來做同樣的設(shè)計(jì)。
這是一張我正在嘗試制作的圖片:
現(xiàn)在我只專注于創(chuàng)建”Criteria”部分(是的,我知道我在圖片中拼錯了)
以下是我目前掌握的信息:
我用紅色突出顯示了我希望增加邊距的位置:
文本框右側(cè)和標(biāo)簽左側(cè)之間
在”條件”面板頂部和JFrame之間
面板和JFrame的左右兩側(cè)
我來自網(wǎng)絡(luò)開發(fā)行業(yè),在那里增加利潤是我想做的事情。如果這是錯誤的術(shù)語,請通知我。
以下是我目前使用的代碼:
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無法達(dá)到此效果,請告訴我應(yīng)該使用什么。
推薦答案
Swing傾向于將邊距或邊框稱為”間隙”。FlowLayout
類(以及其他幾個布局類)允許您設(shè)置水平和垂直間距in its constructor,如下所示:
private static final int PADDING = 3; // for example
...
setLayout(new FlowLayout(FlowLayout.LEADING, PADDING, PADDING));
這將在標(biāo)簽及其文本框之間添加填充,但是您可以用JPanel
(可能用FlowLayout
)來包裝每一對標(biāo)簽。我會為此創(chuàng)建一個自定義組件類。
這篇關(guān)于Java FlowLayout-特定元素的邊距/填充?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,