Frage

I want to display some things in a JTable.

The problem is that the JTable columnnames are "A", "B", "C", ...

my code is like this:

import javax.swing.JTable;

public class View extends JFrame implements Observer {

    private JTable contentTable;

    public View() {
        ...

        String[][] s = {{"test","test","test", "test}};
        String[] columnNames = { "Name", "Category", "Start", "End" };
        this.contentTable = new JTable(new MyTableModel(columnNames, s));
        this.contentPanel.add(new JScrollPane(this.contentTable));

        ...
    }

}

And here is the MyTableModel class

import javax.swing.table.AbstractTableModel;

    public class MyTableModel extends AbstractTableModel {

        private String[] columnNames;
        private Object[][] data;

        public MyTableModel(String[] columns, Object[][] dat){
            this.columnNames = columns;
            this.data = dat;
        }

    ...

    }

If i don't use a TableModel it works f.e.: this.contentTable = new JTable(s, columnNames);, But i dont know how to Change the Table if there is some new Data... That's why i use a TableModel.

I don't know why the Columns aren't displayed but the data is displayed...

Kind Regards!

War es hilfreich?

Lösung

In MyTableModel you need to override

public String getColumnName(int column)

to return your data, e.g.

public String getColumnName(int column) {
  return columnNames[column];
}

You will also want to override

getColumnCount();

and findColumnName();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top