Hi zusammen,
ich habe einen JTable mit einer JScrollPane drumherum das wiederum in ein JPanel plaziert wird.
Jedesmal wenn eine Zeile dazu kommt, wird deren Länge berechnet dund die Spaltenbreite entsprechend berechnet. Soweit so gut, nur was ich auch mache, ich bekomme nie einen Horizontalen Scrollbalken wenn's über die maximale Breite der Scrollpane bzw des Panels raus geht...
ich habe einen JTable mit einer JScrollPane drumherum das wiederum in ein JPanel plaziert wird.
Jedesmal wenn eine Zeile dazu kommt, wird deren Länge berechnet dund die Spaltenbreite entsprechend berechnet. Soweit so gut, nur was ich auch mache, ich bekomme nie einen Horizontalen Scrollbalken wenn's über die maximale Breite der Scrollpane bzw des Panels raus geht...
Java:
public void showGUI()
{
jf.setSize(1200,650);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel tablePanel = new JPanel();
JPanel buttonPanel = new JPanel(new GridBagLayout());
dtm = new DefaultTableModel(null, tableHeader);
dtm.addTableModelListener(new TableModelListener()
{
public void tableChanged(TableModelEvent e)
{
}
});
table = new JTable(dtm);
table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setPreferredSize(new Dimension (1000,600));
scrollPane.add(table);
scrollPane.setViewportView(table);
tablePanel.add(scrollPane);
jp.add(tablePanel,gbcTable);
jf.add(jp);
jf.setVisible(true);
}
public void addToJTable(Object[] line)
{
int tstll = line[6].toString().length()*6; // set the width to 6 times the amount of char in this cell
if (stll < tstll )
{
stll = tstll;
}
table.getColumnModel().getColumn(0).setPreferredWidth(100);
table.getColumnModel().getColumn(1).setPreferredWidth(100);
table.getColumnModel().getColumn(2).setPreferredWidth(100);
table.getColumnModel().getColumn(3).setPreferredWidth(100);
table.getColumnModel().getColumn(4).setPreferredWidth(120);
table.getColumnModel().getColumn(5).setPreferredWidth(120);
column = table.getColumnModel().getColumn(6);
column.setPreferredWidth(stll);
dtm.addRow(line);
}