@alex2410 说要使用 DefaultTableModel 是有道理的。
如果您对 FormLayout 有疑问,请下载 JGoodies 表单或简单更改布局 =)
也许这就是您正在寻找的:
ThruthTablePanel
public class ThruthTablePanel extends JPanel {
private JScrollPane scrollPane;
private JTable table;
/**
* Create the panel.
*/
public ThruthTablePanel() {
initComponents();
}
private void initComponents() {
String columnsLayout = "3dlu, default:grow, 3dlu";
String rowsLayout = "3dlu, default:grow, 3dlu";
setLayout(new FormLayout(columnsLayout, rowsLayout));
scrollPane = new JScrollPane();
add(scrollPane, "2, 2, fill, fill");
Object[] headers = new Object[] { "A", "B", "C",
"D", "A+B", "C+D",
"(A+B)+(C+D)" };
String[] results = new String[] { "0000000", "1000101", "0100101",
"1100101", "0010011", "1010111", "0110111", "1110111",
"0001011", "1001111", "0101111", "1101111", "0011011",
"1011111", "0111111", "1111111" };
DefaultTableModel model = new DefaultTableModel(new Object[][] {}, headers);
model.setRowCount(results.length);
table = new JTable(model);
for (int j = 0; j < results.length; j++) {
for (int i = 0; i < results[j].length(); i++) {
model.setValueAt(results[j].charAt(i), j, i);
}
}
table.setFillsViewportHeight(true);
scrollPane.setViewportView(table);
}
public static void main(String[] args) {
JFrame frm = new JFrame();
frm.setContentPane(new ThruthTablePanel());
frm.setSize(new Dimension(400, 400));
// frm.pack();
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setLocationRelativeTo(null);
frm.setVisible(true);
}
但是,如果您的 ThruthTable[][] 已填充,则可以将其作为参数传递给模型。
其他解决方案
DefaultTableModel model = new DefaultTableModel(/* Here you put your ThruthTable Vector */, headers);
table = new JTable(model);