我有一个代码,可以为给定的布尔表达式生成真值表。例如,考虑一个(A + B)+(C + D)的用户输入表达式。我有一个字符串数组headers[],它将存储真值表的所有必要标头。

在这种情况下,它将包含:"A", "B", "C", "D", "A+B", "C+D", "(A+B)+(C+D)"

然后,生成的真值表(二维数组TruthTable[][])将包含以下数据:

0000000
1000101
0100101
1100101
0010011
1010111
0110111
1110111
0001011
1001111
0101111
1101111
0011011
1011111
0111111
1111111


因此,headers[]数组的第一个元素将对应于TruthTable[][]的第一列。如何考虑这些数据动态生成真值表(使用JTable)?

最佳答案

使用DefaultTableModel创建JTable并向表模型插入新行。
教程JTable and Model

表的简单示例:

public class Example extends JFrame{

private JTable table;
private DefaultTableModel modelTable;

public Example(){
    init();
}

private void init() {
    table = new JTable();
    table.setGridColor(Color.BLACK);
    table.setAutoResizeMode(2);
    modelTable = new DefaultTableModel(new Object[][]{}, new String[] {"A", "B", "C"});
    table.setModel(modelTable);
    Object[][] data = new Object[][]{{"1","2","3"},{"4","5","6"}};
    for(int i =0;i<data.length;i++){
        modelTable.addRow(data[i]);
    }
}

public static void main(String... s){
    Example p = new Example();
    p.add(new JScrollPane(p.table));
    p.pack();
    p.setVisible(true);
}
}

09-25 20:26