Заголовки Java JTable не перемещаются горизонтально при прокруткеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Заголовки Java JTable не перемещаются горизонтально при прокрутке

Сообщение Anonymous »

Я использую Java 8 и компилирую приложение как работоспособный jar-файл со всеми зависимостями.
Я создаю таблицу, добавляю заголовки и содержимое. Оба видны при визуализации 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.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.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-horizontally-when-when-doing-scroll[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»