从Other类向JTable添加新行

时间:2014-04-09 14:46:58

标签: java swing jtable actionlistener defaulttablemodel

我想将数据添加到位于JTabbedpane上的JTable。我想在JTable中插入的数据是来自另一个名为(addcontact)的类的用户输入数据(TextField)。 cntctus是Jtable所在的标签。它包含一个向JTable插入新行的方法。

当我给 tname 文本字段(用户输入)赋值时,行上会出现 nullpointerexception : -  //contctus.addData(new对象[] {,,,}

我的问题与此类似,应用了所有提到的解决方案。但仍然得到 nullpointerexception Data from JTextField to JTable 但就我而言,输入数据的类是不同的。 我正在为contctus选项卡提供图像。 ![。] [1] 这是cntctus类: -

public class cntctus extends JPanel{

JPanel p,tablepanel;
JLabel labelpic;
static JTable table; 
int j,i,k=0;
String column[];
Object [][]row;
 private static DefaultTableModel model;
public cntctus() 
{

    String column[]= { "Name","Position","Phone"};
    Object [][]row = {{"Prof. g", "Director", "+123456"},
            {"Mr. Suir singh", "Assistant Professor", "+9123568989"},
            {"Ms. sa", "BI teacher","9468645"},
            {"bhbnjk ","nj","k780"},
            {"nb","hbj","9798679"}
    };
    model=new DefaultTableModel(row,column);
    labelpic =new JLabel(new ImageIcon("D:\\Workspace\\nikhil\\bin\\Resources\\cont.png"));
    table = new JTable(row,column);
    TableColumn colum = null;
    table.setFont(new Font("Comic Sans MS",15,13));
    TableModel tm = table.getModel();
.
.
.
}

//这里是添加新行的方法

 public static void addData(Object[] data) {
  //String nextrow=Integer.toString(model.getRowCount());
  model.addRow(data);
} 

我从addcontact类调用此方法。 JTable包含三列。  现在动态我想在addcontact类的帮助下在我的JTable中添加更多联系人。 当我点击提交按钮时,我希望将所有三个细节都放在Jtable中 Code for addcontact类的一部分是: -

public void actionPerformed(ActionEvent aes) {
    Object src=aes.getSource();
    if(src==submit){
    if(tname.getText().equals("")){
        JOptionPane.showMessageDialog(null, "Please fill contact name!!");

    }
    else
    {


        cntctus.addData( new Object[]{tname.getText(), tpos.getText(), tnum.getText()});

        //validate();

    }
    if(tpos.getText().equals("")){
        JOptionPane.showMessageDialog(null, "Please fill contact details!!");
    }
    if(tnum.getText().equals("")){
        JOptionPane.showMessageDialog(null, "Please fill contact number!!");
    }
    }

0 个答案:

没有答案