我有一个代码,可以为给定的布尔表达式生成真值表。例如,考虑一个(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);
}
}