Java Swing 的问题
首先,不知道我这个问题是不是很幼稚。
其次,不要说Swing快被淘汰了,巴拉巴拉巴拉。。。
最后,看问题。
Swing JTable 中可以添加元素,然后我想获得JTable的推荐大小,比如说,一行20,三行就会得到60。注意这个问题不是说的行高。不知道有没有API支持这个操作,如果没有API的话,我想知道JScrollPane是怎么判断其推荐高度的。
而且。。。自己算高度这个我也知道。。。
[解决办法]
先看看JTable的getPreferredSize是哪里来的。
JTable的继承关系如下:JTable>JComponent>Container>Component
好的,那么getPreferredSize在JTable中没有重写的,我们看看父类JComponent,
意外发现下面代码:
public Dimension getPreferredSize() {
if (isPreferredSizeSet()) {
return super.getPreferredSize();
}
Dimension size = null;
if (ui != null) {
size = ui.getPreferredSize(this);
}
return (size != null) ? size : super.getPreferredSize();
}
if (isPreferredSizeSet()) {
return super.getPreferredSize();
}
ui.getPreferredSize(this);
updateUI();
setUI((TableUI)UIManager.getUI(this));