无论如何都要为TableLayout
中的Insets
(对于挥杆应用)设置一个单元格的边距,例如GridBagLayout
中的{{1}}。
我需要在表格中的单元格之间留出空间。一种解决方案是添加所需空间的行或列。
如果解决方案适用于netbeans,我会更高兴。
答案 0 :(得分:1)
实际上有两个TableLayout
经理。 Clear thoughts' TableLayout
以及最近的Esoteric Softwares' TableLayout
。
我提供了一个使用两个管理器的简单示例。我们在窗口上放了六个按钮 并在它们之间添加一些空格。
清晰的想法'溶液强>
package com.zetcode;
import info.clearthought.layout.TableLayout;
import java.awt.EventQueue;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TableLayoutGaps2 extends JFrame {
public TableLayoutGaps2() {
initUI();
setTitle("Gaps");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private void initUI() {
JPanel base = new JPanel();
base.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5)
);
double cols[] = {
TableLayout.PREFERRED,
TableLayout.PREFERRED,
TableLayout.PREFERRED
};
double rows[] = {
TableLayout.PREFERRED,
TableLayout.PREFERRED
};
TableLayout layout = new TableLayout(cols, rows);
layout.setHGap(5);
layout.setVGap(5);
base.setLayout(layout);
base.add(new JButton("Button"), "0, 0");
base.add(new JButton("Button"), "1, 0");
base.add(new JButton("Button"), "2, 0");
base.add(new JButton("Button"), "0, 1");
base.add(new JButton("Button"), "1, 1");
base.add(new JButton("Button"), "2, 1");
add(base);
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
TableLayoutGaps2 ex = new TableLayoutGaps2();
ex.setVisible(true);
}
});
}
}
使用以下方法添加间隙:
layout.setHGap(5);
layout.setVGap(5);
深奥的软件解决方案
package com.zetcode;
import com.esotericsoftware.tablelayout.swing.Table;
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
public class TableLayoutGaps3 extends JFrame {
public TableLayoutGaps3() {
initUI();
setTitle("Gaps");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private void initUI() {
Table table = new Table();
getContentPane().add(table);
table.addCell(new JButton("Button")).pad(5, 5, 2.5f, 2.5f);
table.addCell(new JButton("Button")).pad(5, 2.5f, 2.5f, 2.5f);
table.addCell(new JButton("Button")).pad(5, 2.5f, 2.5f, 5);
table.row();
table.addCell(new JButton("Button")).pad(2.5f, 5, 5, 2.5f);
table.addCell(new JButton("Button")).pad(2.5f, 2.5f, 5, 2.5f);
table.addCell(new JButton("Button")).pad(2.5f, 2.5f, 5, 5);
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
TableLayoutGaps3 ex = new TableLayoutGaps3();
ex.setVisible(true);
}
});
}
}
使用gap()
方法添加组件之间的间隙。
但是,我不能推荐这两个布局管理器中的任何一个。而是使用 以下布局管理器之一:
它们更灵活,更强大。这些经理可以更好地应对 许多布局管理的挑战。