我对使用JTable有点怀疑。
这就是我想要的:
这就是我:
我将不胜感激。
AplicacionesInternalFrame:
public AplicacionesJInternalFrame()
{
super("Aplicaciones",
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
//...Create the GUI and put it in the window...
//...Then set the window size or call pack...
//setSize(300,300);
//Set the window's location.
setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
getContentPane().add(createToolBar(),BorderLayout.NORTH);
jTableAplicaciones = new JTable(new AplicacionesTableModel());
jTableAplicaciones.getColumnModel().getColumn(0).setCellRenderer(new AplicacionesRenderer());
jTableAplicaciones.setPreferredScrollableViewportSize(new Dimension(500, 270));
jTableAplicaciones.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(jTableAplicaciones);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
initColumnSizes(jTableAplicaciones);
//jTableAplicaciones.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
add(scrollPane);
pack();
}
private void initColumnSizes(JTable table) {
TableColumn column = null;
Component comp = null;
int headerWidth = 0;
TableCellRenderer headerRenderer =
table.getTableHeader().getDefaultRenderer();
int width = 0;
for (int i = 0; i < table.getColumnCount(); i++)
{
/* Tamaño dato de celda */
TableCellRenderer renderer = table.getCellRenderer(0, i);
Component componente = table.prepareRenderer(renderer, 0, i);
int componenteWidth = componente.getPreferredSize().width;
/* Tamaño cabecera columna */
column = table.getColumnModel().getColumn(i);
comp = headerRenderer.getTableCellRendererComponent(
null, column.getHeaderValue(),
false, false, 0, 0);
headerWidth = comp.getPreferredSize().width;
column.setPreferredWidth(Math.max(headerWidth, componenteWidth)+2);
}
}
如果您需要任何其他数据,请告诉我。 提前谢谢。
答案 0 :(得分:1)
如果单元格大小很长,我的Jtable不会显示单元格中的所有数据。
您可以使用Table Column Adjuster确保所有列都合适。但是,这不会强制表填充整个宽度。