Я создаю таблицу, добавляю заголовки и содержимое. Оба видны при визуализации JScrollPane, однако при прокрутке заголовки не перемещаются, а только строки данных таблицы.
Ниже моего кода:
Код: Выделить всё
public JScrollPane getTableScrollPaneWithTable(CellData[][] toBeShown, String[] headers, int panelWidth,
int parentHeight) {
DefaultTableModel tableModel = new DefaultTableModel(toBeShown, headers);
this.parent.getInfoResponse().getPositionSetOfConfigDIDsInTheDataMatrix().clear();
JTable table = new JTable(tableModel) {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
if (column == 0 || row == 0 || row == 1) {
HeaderColumnRenderer hcr = new HeaderColumnRenderer(this.getTableHeader().getDefaultRenderer());
return hcr;
}
CellData[][] dataShowed = getDataShowed();
return new MultiColorRenderer(dataShowed);
}
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.getTableHeader().setPreferredSize(new Dimension(400, 30));
table.setCellSelectionEnabled(true);
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
int colCount = table.getColumnModel().getColumnCount();
for(int i=0; i< colCount; i++) {
if(i==0) {
table.getColumnModel().getColumn(i).setPreferredWidth(80);
continue;
}
table.getColumnModel().getColumn(i).setPreferredWidth(250);
}
table.getTableHeader().setReorderingAllowed(false);
table.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_C) {
//System.out.println("Copy event");
int[] selectedColumns = table.getSelectedColumns();
int[] selectedRows = table.getSelectedRows();
MainWindow parent = getParent();
CellData[][] toShow = parent.getCellDataShowed();
StringBuffer sb = new StringBuffer();
for(int i =0; i
Подробнее здесь: [url]https://stackoverflow.com/questions/78669781/java-jtable-headers-not-moving-when-when-doing-scroll[/url]