Я использую AbstractTableModel
для создания простой пользовательской таблицы, как обычно, с String[] для имен столбцов и Object[][] для содержимого в JTable's
строках. Но мне было трудно создать таблицу, содержащую дополнительную строку. (одной большой ячейки, охватывающей все столбцы для общего заголовка) перед именами столбцов. У кого-нибудь есть идеи?
как создать собственный JTable в Java со строкой над именами столбцов
Ответы (2)
с помощью BorderLayout вы можете разместить TableHeader
в нижней части Container
add(table, BorderLayout.CENTER);
add(header, BorderLayout.SOUTH);
person
mKorbel
schedule
16.07.2011
user489041 да, но ничего особенного для красивого вида (с Nimbus L&F лучше)
- person mKorbel; 28.07.2011
Это зависит от того, как вы хотите, чтобы ваш общий заголовок выглядел.
Вы можете легко добавить JLabel над таблицей на отдельной панели. Что-то типа:
JPanel tablePanel = new JPanel( new BorderLayout() );
JLabel label = new JLabel( "Table Title" );
label.setHorizontalAlignment( JLabel.CENTER );
tablePanel.add(label, BorderLayout.NORTH);
JTable table = new JTable(...);
JScrollPane scrollPane = new JScrollPane( table );
tablePanel.add(scrollPane, BorderLayout.CENTER);
Если вы хотите, чтобы заголовок был частью заголовка столбца, то это немного сложнее. Один из способов сделать это примерно так:
JTable table = new JTable(...)
{
@Override
protected void configureEnclosingScrollPane()
{
super.configureEnclosingScrollPane();
Container parent = getParent();
if (parent instanceof JViewport)
{
parent = parent.getParent();
if (parent instanceof JScrollPane)
{
JScrollPane scrollPane = (JScrollPane)parent;
JPanel columnHeader = new JPanel( new BorderLayout() );
JLabel label = new JLabel( "Table Title" );
label.setHorizontalAlignment( JLabel.CENTER );
columnHeader.add(label, BorderLayout.NORTH);
columnHeader.add(getTableHeader(), BorderLayout.CENTER);
scrollPane.setColumnHeaderView( columnHeader );
}
}
}
};
JScrollPane scrollPane = new JScrollPane( table );
add( scrollPane );
person
camickr
schedule
17.07.2011
AbstractTableModel
, у вас есть значительная гибкость в модели, как предлагается здесь а>. - person trashgod   schedule 17.07.2011