简体   繁体   English

刷新JTable Java后更改列名称

[英]change column names after refreshing JTable java

I dont know why column names are named "A","B","C" ... after refreshing JTable. 我不知道为什么在刷新JTable之后将列名命名为“ A”,“ B”,“ C”...。

I created a class to refresh JTable. 我创建了一个刷新JTable的类。

public class TableModelClass extends AbstractTableModel
{
    Object[][] data;
    Object[] title;

public TableModelClass(Object[][] dat, Object[] tit)
{
    data = dat;
    title = tit;    
}

@Override
public int getColumnCount()
{
    if(title != null)
        return title.length;
    return 0;
}

@Override
public int getRowCount()
{
    if(data != null)
        return data.length;
    return 0;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex)
{
    return data[rowIndex][columnIndex];
}

} }

I set JTables values default in my class: 我在类中将JTables值设置为默认值:

Object[] titlesDefault = { "tit1", "tit12","tit3"};
Object[][] dataDefault = {{ "1", "2","3"},
            {"1", "2","3"}};


       _jTable = new JTable(dataDefault, titlesDefault);    

_bAddTable.addActionListener(new ActionListener()
    {           
        @Override
        public void actionPerformed(ActionEvent arg0)
        {
                try
                {
                Object[] titles2 = { "1", "2","3", "1", "2","3"};
                Object[][] data = {{ "1", "2","3"},
                                   { "1", "2","3"},
                       {"1", "2","3"}};
                data.setModel(new TableModelClass(data, titles2));
                } 
                catch (ClassNotFoundException)
                {

                    e1.printStackTrace();
                }               

         };
        });

And after this I receive letters in column names. 然后,我收到列名称中的字母。 Why? 为什么?

Without overriding getColumnName , the TableModel uses default values of "A", "B", "C", etc. 在不覆盖getColumnName的情况下, TableModel使用默认值“ A”,“ B”,“ C”等。

@Override
public String getColumnName(int column) {
    return title[column];
}

For this to work you need to return a String so that it corresponds to the return type in the super class. 为此,您需要返回一个String ,以使其与超类中的返回类型相对应。 The title variable should be defined as a String[] type. title变量应定义为String[]类型。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM