簡體   English   中英

GridBagLayout Java中的邊距/填充

[英]Margin/padding in GridBagLayout Java

  1. 是否可以在整個行/列的GridBagLayout設置邊距/填充? 我在constraints-object上使用了inset,但是,使用這種方法我需要在每個組件上從底部設置填充。

  2. 是否可以填充JFrame中的所有內容? 因為現在每個組件都與框架對齊。

  constraints.weightx = 2;
  constraints.weighty = 1;
  constraints.fill = GridBagConstraints.BOTH;
  addComponent(this, layout, constraints, questionPanel = new QuestionPanel(), 0, 0, 1, 1);

  constraints.weightx = 1;
  constraints.weighty = 1;
  constraints.fill = GridBagConstraints.BOTH;
  addComponent(this, layout, constraints, categoryPanel = new CategoryPanel(), 0, 1, 1, 1);

  constraints.weightx = 1;
  constraints.weighty = 0;
  constraints.fill = GridBagConstraints.HORIZONTAL;
  addComponent(this, layout, constraints, answerPanel = new AnswerPanel(), 1, 0, 2, 1);

  constraints.weightx = 1;
  constraints.weighty = 2;
  constraints.fill = GridBagConstraints.BOTH;
  addComponent(this, layout, constraints, tabPane = new JTabbedPane(), 2, 0, 2, 1);

  constraints.weightx = 1;
  constraints.weighty = 0;
  constraints.fill = GridBagConstraints.NONE;
  constraints.anchor = GridBagConstraints.SOUTHEAST;
  addComponent(this, layout, constraints, buttonPanel = new ButtonPanel(), 3, 1, 1, 1);

我正在使用私有方法addComponent:

private void addComponent(Container context, GridBagLayout _layout, GridBagConstraints            _constraints, Component component, int row, int column, int width, int height) {
  _constraints.gridx = column;
  _constraints.gridy = row;
  _constraints.gridwidth = width;
  _constraints.gridheight = height;

  _layout.setConstraints(component, _constraints);
  context.add(component);
 }

如何在單元格之間添加一些“空氣(填充/邊距)”?

使用GridBagConstraints類的inset屬性

例如:

GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(3,3,3,3);

希望這是你正在尋找的。

據我所知,做第一個的唯一方法為每個約束設置一個Insets對象......(手工編碼布局顯然在Java中不容易設計:P)

但是有一種非常簡單的方法可以完成第二種操作,而不需要處理任何Insets或其他內容:將contentPane的布局設置為FlowLayout,無論您需要任何垂直和水平間隙,都可以將面板添加到contentPane,而不是添加所有內容到contentPane,將其添加到新面板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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