Я потянув запись базы данных из MySql
, я могу сделать это с помощью метода нижедисплея ResultSet в JTable ячейки с многострочным
private void txt_clientNameKeyReleased(java.awt.event.KeyEvent evt) {
String sql = "Select client_id as 'Client ID', name_lastName as 'Full Name', case_number as 'Case #', hearing_date as 'Hearing Date', rtc_mtc as 'RTC/MTC', place as 'Place', status as 'Status', note as 'Notes', billing as 'Billed' from hearing_history where name_lastName like '%"+ txt_clientName.getText() +"%' ";
try{
if(conn==null){
conn = ConnectDB.ConDB();
}else{
conn = ConnectDB.ConDB();
}
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally {
close();
}
}
он работает нормально, но у меня есть столбец, который должен иметь несколько линии или для обертывания слов для увеличения высоты ячейки.
Я использую java swing в течение 4 месяцев, и я не видел/не встречал продвинутых трюков, чтобы манипулировать jtable
так, как я хотел, чтобы он выполнялся.
Я искал этот сайт и нашел кратчайший путь, чтобы сделать это по этой ссылке
Auto adjust the height of rows in a JTable
из camickr
private void updateRowHeights()
{
try
{
for (int row = 0; row < table.getRowCount(); row++)
{
int rowHeight = table.getRowHeight();
for (int column = 0; column < table.getColumnCount(); column++)
{
Component comp = table.prepareRenderer(table.getCellRenderer(row, column), row, column);
rowHeight = Math.max(rowHeight, comp.getPreferredSize().height);
}
table.setRowHeight(row, rowHeight);
}
}
catch(ClassCastException e) {}
}
Это действительно хороший код, я думаю, но Я попробовал это, и я заметил, что увеличение высоты от 16
(высота по умолчанию по высоте) до 20
, и поэтому я все еще hav e одна строка в ячейках.
Я назвал этот метод после того, как линии
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
updateRowHeights();
Я очень признателен за любую помощь, которая поместит свои ноги на правильном пути, чтобы сделать эту работу для меня ..
Заранее спасибо ..
Спасибо alex2410, но код, который мне нужен, должен обеспечивать высоту строки автоматически. Высота строки будет зависеть от длины строки. некоторые из них будут иметь буксирные линии, некоторые из которых будут иметь 3 или более, а некоторые будут иметь только одну (одну) линию. Я все еще пытаюсь понять это и буду признателен, если кто-то сможет показать способ сделать это :) – pandoy
Вы можете сделать это, просто верните 'area' в' getTableCellEditorComponent'/'getTableCellRendererComponent', но вам нужно использовать' JScrollPane' с 'JTeatArea'. – alex2410
@pandoy Попробуйте изменить мой отредактированный код. – alex2410