I have a JTable
with user data distributed in rows
and columns
. I want when, I look for a user using the ID in a JTextField
, resize the size (height
, with the same width) depending on the number of rows
found. Why is the width of the table reduced?
Code:
tabla_clientes.setPreferredScrollableViewportSize(
new Dimension(tabla_clientes.getPreferredSize().width, tabla_clientes.getRowHeight()*20)
);
//...
private void resizer() {
revalidate();
int w = jScrollPane.getPreferredSize().width; //width scroll pane
int h1 = jScrollPane.getViewport().getViewSize().height; //height viewport
int h2 = tabla_clientes.getPreferredScrollableViewportSize().height; //table height
if(h1<h2)
jScrollPane.setSize(new Dimension(w,h1));
else
jScrollPane.setSize(tabla_clientes.getPreferredScrollableViewportSize());
}
public void filtrar_dni() {
int columna = 0;
TRSFiltro.setRowFilter(RowFilter.regexFilter(textfield_buscar.getText(), columna));
}
private void textfield_buscarKeyTyped(java.awt.event.KeyEvent evt) {
textfield_buscar.addKeyListener(new KeyAdapter(){
public void keyReleased(final KeyEvent e){
String texto = (textfield_buscar.getText());
textfield_buscar.setText(texto);
filtrar_dni();
resizer();
}
});
TRSFiltro = new TableRowSorter<DefaultTableModel>((DefaultTableModel) tabla_clientes.getModel());
tabla_clientes.setRowSorter(TRSFiltro);
}