JFrame设置最小大小问题、

Haisen大王 2015-05-29 11:23:06
[
		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返回的对象完全可以由我随便返回,并非是对象的属性啊。。怎么会能成功的设置了窗口的最小大小啊??纠结好几天了。
...全文
588 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Haisen大王 2015-05-30
  • 打赏
  • 举报
回复
引用 2 楼 vcshcn 的回复:
当jframe需要取得MinimumSize时,调用自身的getMinimumSize方法,取得Dimension得到值 。 默认使用set方法后,将参数保存起来到变量,调用get方法时,将值返回。 重写get方法,get方法没有取回变量值,set的值不再起作用。
好像只能这样理解了。 但是如果没有JFrame.setDefaultLookAndFeelDecorated(true); 单纯的重写get是没效果啊的,这是为什么啊?
vcshcn 2015-05-30
  • 打赏
  • 举报
回复
当jframe需要取得MinimumSize时,调用自身的getMinimumSize方法,取得Dimension得到值 。 默认使用set方法后,将参数保存起来到变量,调用get方法时,将值返回。 重写get方法,get方法没有取回变量值,set的值不再起作用。
vcshcn 2015-05-30
  • 打赏
  • 举报
回复
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);
	}
}
Haisen大王 2015-05-30
  • 打赏
  • 举报
回复
我是处女座的。解决不了。我吃不下睡不着。我心里会一直纠结 下去。直到老死成为人生遗憾的。求大神给我捋清楚
vcshcn 2015-05-30
  • 打赏
  • 举报
回复
不写也有效果,不要拿JFrame做。比如拿JSplitPane,左边的控件Override最小值
Haisen大王 2015-05-29
  • 打赏
  • 举报
回复
		JFrame frame=new JFrame("FlowLayout Demo"){
			@Override
			public Dimension getMinimumSize() {
				Dimension prefSize=getPreferredSize();
				return new Dimension(200,200);
		    }
		};
		frame.setMinimumSize(new Dimension(100,100));
去掉JFrame.setDefaultLookAndFeelDecorated(true); 这样get也能设置最小大小。但是set里那个就不起作用了哦。为什么?

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧