我想做一个表格,点击一个按钮之后就增加一行,程序虽然简单,但是总也没成功。原来在教程看的增加一行要使用DefaultTableModel对象对表格进行访问,可是netbeans使用的都是匿名的对象,不能直接引用。就是把声明改成
Object[][] ob= {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
};
String[] str={
"标题 1", "标题 2", "标题 3", "标题 4"
};
DefaultTableModel dtm=new DefaultTableModel(ob,str);
jTable1.setModel(dtm);
然后通过 private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased
Object[] obe={"1","2","3","4"};
dtm.addColumn(obe);
进行修改,结果也不可以,不知道怎么回事,请大家给看一看吧。
public class A extends javax.swing.JFrame {
/** Creates new form A */
public A() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("\u8868\u683c");
setLocationByPlatform(true);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"s", "f", new Short((short) 12), "45", null},
{"d", "d", new Short((short) 12), "78", null},
{"", null, null, null, null},
{null, null, null, null, null}
},
new String [] {
"姓名", "性别", "年龄", "住址", "是否团员"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.Short.class, java.lang.String.class, java.lang.Boolean.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane1.setViewportView(jTable1);
jTable1.getAccessibleContext().setAccessibleName("jTable1");
jButton1.setText("\u589e\u52a0\u4e00\u884c");
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
jButton1MouseReleased(evt);
}
});
//略
private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased
Object[] rowData={"张三","男",12,new Boolean(true)};
//addRow(rowData);不知道这条语句怎么写,
// TODO 将在此处添加您的处理代码:
}//GEN-LAST:event_jButton1MouseReleased
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new A().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
}
參考答案:你说"netbeans使用的都是匿名的对象",类定义的外部是不能见着匿名的对象,你就将相应的功能函数(加行)放到类定义里面,看行不.