簡體   English   中英

Java FlowLayout - 特定元素的邊距/填充?

[英]Java FlowLayout - Margin/padding of specific elements?

我是Swing的新手,我正在嘗試制作一個GUI。 使用Netbeans的GUI創建者的東西,我設法制作了我喜歡的東西。 但是我使用編輯器讓我感覺很糟糕,所以現在我嘗試使用代碼進行相同的設計。 這是我想要制作的圖片: 我想做什么 現在我只專注於創建“標准”部分(是的,我知道我在圖片中拼錯了)這是我目前所擁有的: 我現在有什么 我用紅色突出顯示了我想增加保證金的地方:

  • 在文本框的右側和標簽的左側之間
  • 在Criteria面板的頂部和JFrame之間
  • 在面板的左側和右側與JFrame之間

我來自網絡開發,增加利潤是我想要做的。 如果這是不正確的術語,請通知我。 這是我目前使用的代碼:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM