[
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame=new JFrame("FlowLayout Demo"){
@Override
public Dimension getMinimumSize() {
Dimension prefSize=getPreferredSize();
return new Dimension(200,prefSize.height);
}
};
课本上的代码:
正常设置最小大小,当然直接frame.setMaximumSize(new Dimension());
可以这里添加了这句 JFrame.setDefaultLookAndFeelDecorated(true);
怎么使得 @Override 的getMinimumSize() 方法也能设置最小大小啊??
我现在不理解的是,这个get返回的对象完全可以由我随便返回,并非是对象的属性啊。。怎么会能成功的设置了窗口的最小大小啊??纠结好几天了。
------解决思路----------------------
当jframe需要取得MinimumSize时,调用自身的getMinimumSize方法,取得Dimension得到值 。
默认使用set方法后,将参数保存起来到变量,调用get方法时,将值返回。
重写get方法,get方法没有取回变量值,set的值不再起作用。
------解决思路----------------------
不写也有效果,不要拿JFrame做。比如拿JSplitPane,左边的控件Override最小值
------解决思路----------------------
public class F extends JFrame {
public static void main(String[] args) {
F f = new F();
f.setLayout(new BorderLayout());
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new Tree(), new JTable());
f.add(pane, BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
}
class Tree extends JTree {
@Override
public Dimension getMinimumSize() {
return new Dimension(500,500);
}
@Override
public Dimension getMaximumSize() {
// TODO Auto-generated method stub
return new Dimension(1000,1000);
}
@Override
public Dimension getPreferredSize() {
// TODO Auto-generated method stub
return new Dimension(700,700);
}
}