我的问题是:Dialog上放一个是空的JTable是五行三列(界面上定好的),我查询数据库向该Table中赋值我已经加上滚动条了,但是就是不出来.不知道原因,代码如下请各位高手指教.
public class JTable2 extends JPanel{
private static JTable2 table2 = null;
//声明表格
JTable table = new JTable();
//声明表格的数据类
DefaultTableModel model;
int i;
//表格的数据
Object[][] data = new Object[][] {
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
}; //表格的标题
String[] columnNames = {
"明细号","摘要","金额"
};
String columnEight = new String();
String columnNine = new String();
String columnTen = new String();
JScrollPane jScrollPane1 = new JScrollPane();
BorderLayout borderLayout1 = new BorderLayout();
public JTable2() {
try {
jbInit();
table2 = this;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
void creatMxh() throws Exception{
Dimension s = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
this.setBackground(SystemColor.controlHighlight);
this.setFont(new java.awt.Font("Dialog", 0, 11));
this.setDebugGraphicsOptions(0);
this.setPreferredSize(new Dimension(200, 128));
this.setToolTipText("");
model =new DefaultTableModel(data, columnNames) {
public boolean isCellEditable(int row, int column) {
return false;
} //指让单元不可编辑
};
table.setModel(model);
//指定标题的重新排序不被允许
table.getTableHeader().setReorderingAllowed(false);
//不会因为在列标题之间拖动而改变大小
// table.getTableHeader().setResizingAllowed(false);
this.setLayout(borderLayout1);
//使选择框成为一个单元格
table.getTableHeader().setFont(new java.awt.Font("Dialog", 0, 12));
table.getColumnModel().getColumn(1).setPreferredWidth( 60 );
table.getColumnModel().getColumn(2).setPreferredWidth( 50 );
table.setFont(new java.awt.Font("Dialog", 0, 12));
table.setDebugGraphicsOptions(0);
table.setMaximumSize(new Dimension(2147483647, 100));
table.setColumnSelectionAllowed(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setRowHeight(20);
//取得表格的行方法
ListSelectionModel rowSM = table.getSelectionModel();
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.getViewport().setBackground(Color.white);
jScrollPane1.setFont(new java.awt.Font("Dialog", 0, 12));
jScrollPane1.setDebugGraphicsOptions(0);
jScrollPane1.setSize(s);
this.add(jScrollPane1, BorderLayout.CENTER);
// table.setToolTipText("鼠标双击察看详细信息");
jScrollPane1.getViewport().add(table);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
void jbInit() throws Exception {
Dimension s = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
this.setBackground(SystemColor.controlHighlight);
this.setFont(new java.awt.Font("Dialog", 0, 11));
this.setDebugGraphicsOptions(0);
this.setPreferredSize(new Dimension(200, 128));
this.setToolTipText("");
if (i>0){
//这里是给出数据和运算
data[i-1][1] = columnEight;
data[i-1][2] = columnNine;
String zje0 = MenZhenHuaJiaShouFei.createInstance().jTextField2.getText();
double zje1 = Double.parseDouble(columnNine);
double zje2 = zje1+Double.parseDouble(zje0);
BigDecimal b = new BigDecimal(Double.toString(zje2));
BigDecimal one = new BigDecimal("1");
double qq = b.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();
MenZhenHuaJiaShouFei.createInstance().jTextField2.setText(String.valueOf(qq));
}
i++;
model =new DefaultTableModel(data, columnNames) {
public boolean isCellEditable(int row, int column) {
return false;
} //指让单元不可编辑
};
table.setModel(model);
//指定标题的重新排序不被允许
table.getTableHeader().setReorderingAllowed(false);
//不会因为在列标题之间拖动而改变大小
// table.getTableHeader().setResizingAllowed(false);
this.setLayout(borderLayout1);
//使选择框成为一个单元格
table.getTableHeader().setFont(new java.awt.Font("Dialog", 0, 12));
// table.getColumnModel().getColumn(2).setPreferredWidth( 300 );
// table.getColumnModel().getColumn(4).setPreferredWidth( 50 );
table.setFont(new java.awt.Font("Dialog", 0, 12));
table.setDebugGraphicsOptions(0);
table.setMaximumSize(new Dimension(2147483647, 100));
table.setColumnSelectionAllowed(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setRowHeight(20);
//取得表格的行方法
ListSelectionModel rowSM = table.getSelectionModel();
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.getViewport().setBackground(Color.white);
jScrollPane1.setFont(new java.awt.Font("Dialog", 0, 12));
jScrollPane1.setDebugGraphicsOptions(0);
jScrollPane1.setSize(s);
this.add(jScrollPane1, BorderLayout.CENTER);
// table.setToolTipText("鼠标双击察看详细信息");
jScrollPane1.getViewport().add(table);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
public static JTable2 createInstance(){
return table2;
}}
public class JTable2 extends JPanel{
private static JTable2 table2 = null;
//声明表格
JTable table = new JTable();
//声明表格的数据类
DefaultTableModel model;
int i;
//表格的数据
Object[][] data = new Object[][] {
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
}; //表格的标题
String[] columnNames = {
"明细号","摘要","金额"
};
String columnEight = new String();
String columnNine = new String();
String columnTen = new String();
JScrollPane jScrollPane1 = new JScrollPane();
BorderLayout borderLayout1 = new BorderLayout();
public JTable2() {
try {
jbInit();
table2 = this;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
void creatMxh() throws Exception{
Dimension s = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
this.setBackground(SystemColor.controlHighlight);
this.setFont(new java.awt.Font("Dialog", 0, 11));
this.setDebugGraphicsOptions(0);
this.setPreferredSize(new Dimension(200, 128));
this.setToolTipText("");
model =new DefaultTableModel(data, columnNames) {
public boolean isCellEditable(int row, int column) {
return false;
} //指让单元不可编辑
};
table.setModel(model);
//指定标题的重新排序不被允许
table.getTableHeader().setReorderingAllowed(false);
//不会因为在列标题之间拖动而改变大小
// table.getTableHeader().setResizingAllowed(false);
this.setLayout(borderLayout1);
//使选择框成为一个单元格
table.getTableHeader().setFont(new java.awt.Font("Dialog", 0, 12));
table.getColumnModel().getColumn(1).setPreferredWidth( 60 );
table.getColumnModel().getColumn(2).setPreferredWidth( 50 );
table.setFont(new java.awt.Font("Dialog", 0, 12));
table.setDebugGraphicsOptions(0);
table.setMaximumSize(new Dimension(2147483647, 100));
table.setColumnSelectionAllowed(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setRowHeight(20);
//取得表格的行方法
ListSelectionModel rowSM = table.getSelectionModel();
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.getViewport().setBackground(Color.white);
jScrollPane1.setFont(new java.awt.Font("Dialog", 0, 12));
jScrollPane1.setDebugGraphicsOptions(0);
jScrollPane1.setSize(s);
this.add(jScrollPane1, BorderLayout.CENTER);
// table.setToolTipText("鼠标双击察看详细信息");
jScrollPane1.getViewport().add(table);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
void jbInit() throws Exception {
Dimension s = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
this.setBackground(SystemColor.controlHighlight);
this.setFont(new java.awt.Font("Dialog", 0, 11));
this.setDebugGraphicsOptions(0);
this.setPreferredSize(new Dimension(200, 128));
this.setToolTipText("");
if (i>0){
//这里是给出数据和运算
data[i-1][1] = columnEight;
data[i-1][2] = columnNine;
String zje0 = MenZhenHuaJiaShouFei.createInstance().jTextField2.getText();
double zje1 = Double.parseDouble(columnNine);
double zje2 = zje1+Double.parseDouble(zje0);
BigDecimal b = new BigDecimal(Double.toString(zje2));
BigDecimal one = new BigDecimal("1");
double qq = b.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();
MenZhenHuaJiaShouFei.createInstance().jTextField2.setText(String.valueOf(qq));
}
i++;
model =new DefaultTableModel(data, columnNames) {
public boolean isCellEditable(int row, int column) {
return false;
} //指让单元不可编辑
};
table.setModel(model);
//指定标题的重新排序不被允许
table.getTableHeader().setReorderingAllowed(false);
//不会因为在列标题之间拖动而改变大小
// table.getTableHeader().setResizingAllowed(false);
this.setLayout(borderLayout1);
//使选择框成为一个单元格
table.getTableHeader().setFont(new java.awt.Font("Dialog", 0, 12));
// table.getColumnModel().getColumn(2).setPreferredWidth( 300 );
// table.getColumnModel().getColumn(4).setPreferredWidth( 50 );
table.setFont(new java.awt.Font("Dialog", 0, 12));
table.setDebugGraphicsOptions(0);
table.setMaximumSize(new Dimension(2147483647, 100));
table.setColumnSelectionAllowed(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setRowHeight(20);
//取得表格的行方法
ListSelectionModel rowSM = table.getSelectionModel();
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.getViewport().setBackground(Color.white);
jScrollPane1.setFont(new java.awt.Font("Dialog", 0, 12));
jScrollPane1.setDebugGraphicsOptions(0);
jScrollPane1.setSize(s);
this.add(jScrollPane1, BorderLayout.CENTER);
// table.setToolTipText("鼠标双击察看详细信息");
jScrollPane1.getViewport().add(table);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
public static JTable2 createInstance(){
return table2;
}}
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
new Object[] {"","","","","",""},
};
改成Oject[][] data = new Object[9][];滚动条就出来了是只有9行的表,问题是现在加数据在表上显示不出来了,不知道为什么?郁闷呀!请高手指点。