Отображать заголовки таблиц с помощью табличной модели в Java Swing - PullRequest
1 голос
/ 22 января 2010

Я хотел бы создать таблицу с помощью конструктора метода JTable (TableModel). Какие точные методы в TableModel мне нужны для отображения заголовков каждого столбца?

Ответы [ 4 ]

4 голосов
/ 22 января 2010

Вам необходимо встроить JTable в JScrollPane, и заголовки столбцов будут показаны автоматически:

JScrollPane sp = new JScrollPane(new JTable());
1 голос
/ 22 января 2010

Я думаю, вы действительно ищете класс DefaultTableModel . Просто прочитайте документацию, и вы будете на своем пути.

1 голос
/ 22 января 2010

Вам необходимо реализовать метод getColumnName в интерфейсе TableModel вернуть имена столбцов, которые вы хотите.

Из Javadoc TableModel:

String getColumnName (int columnIndex)
Возвращает имя столбца в columnIndex. Это используется для инициализации имени заголовка столбца таблицы.

EDIT:
Абстрактный класс AbstractTableModel обеспечивает реализацию для большинства методов в интерфейсе TableModel , а также предоставляет реализацию по умолчанию для метод getColumnName в интерфейсе TableModel (но он может не соответствовать вашей цели, поскольку он возвращает имена столбцов в виде A, B ..).

Создайте свою собственную TableModel путем создания подкласса AbstractTableModel и предоставьте реализацию для абстрактных методов и переопределите getColumnName метод. Например, вы можете попробовать что-то вроде:

</p> <pre><code>class MyTableModel extends AbstractTableModel { private List<String> rowData; // say private List<String> columnNames; MyTableModel(List<String> data,List<String> names) { rowData = data; columnNames = names; } // provide implementation of abstract methods public int getRowCount() {...} public int getColumnCount() {...} public Object getValueAt(int row, int column) {...} @Override public String getColumnName(int pCol) { return columnNames.get(pCol); } ... } // create your table as below; List<String> data = new ArrayList<String>(); data.add("Test"); data.add("Try"); List<String> colNames = new ArrayList<String>(); colNames.add("Name"); MyTableModel model = new MyTableModel(data,colNames); JTable myTable = new JTable(model);

1 голос
/ 22 января 2010

Вам необходимо реализовать TableModel , например, путем расширения класса AbstractTableModel или путем использования DefaultTableModel . Позже у этого есть конструктор , где вы можете установить количество и имена ваших столбцов.

...