TableColumnAdjuster
是一个很棒的工具,但我似乎无法让表格显示每列的全部宽度。我看不到整个标题,有时可能会很长。
这就是我所拥有的:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumnAdjuster tca = new TableColumnAdjuster(table);
tca.adjustColumns();
tca.setColumnHeaderIncluded(true);
tca.setColumnDataIncluded(true);
tca.setOnlyAdjustLarger( true );
tca.setDynamicAdjustment( false );
但除非我手动调整大小,否则列标题部分隐藏。有关如何显示列的整个宽度的任何想法,以便我可以看到整个标题?
答案 0 :(得分:1)
setDynamicAdjustment(true); //false will work for the static data
you might wann change it to `true`.
在设置属性后,在最后调用adjustColumns()
。
答案 1 :(得分:1)
TableColumnAdjuster的默认行为是在确定列宽时包含标头和数据。没有必要改变任何财产。
这是一个简单的SSCCE,需要5分钟才能创建并轻松演示TableColumnAdjuster的默认值:
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class SSCCE extends JPanel
{
public SSCCE()
{
setLayout( new BorderLayout() );
String[] columnNames = {"Column1", "Column with big header text", "Column3"};
DefaultTableModel model = new DefaultTableModel(columnNames, 3);
model.setValueAt("column1 data", 0, 0);
model.setValueAt("column2 data", 1, 1);
model.setValueAt("column3 long data", 2, 2);
JTable table = new JTable( model );
add( new JScrollPane( table ) );
// use default behaviour
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumnAdjuster tca = new TableColumnAdjuster(table);
tca.adjustColumns();
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("SSCCE");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new SSCCE());
frame.setLocationByPlatform( true );
frame.pack();
frame.setVisible( true );
}
public static void main(String[] args)
{
EventQueue.invokeLater( () -> createAndShowGUI() );
/*
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
*/
}
}
此代码正常运行,所以问题是为什么它对你不起作用?
你有什么不同的做法?您的使用是否导致代码中的错误?
您接受的解决方案是正确的解决方案还是有更好的解决方案?
问题是操作系统版本/平台问题吗?
除非我们能看到您的SSCCE,否则我们无法回答任何问题。