2012-08-10 108 views
2

我使用null布局。自动缩放JPanel - 调整大小的窗口

在调整挥杆窗口大小时,JPanel不会根据新的挥杆窗口大小调整大小以适合其大小。

建议使用任何功能或其他方式消除。

+5

null布局的原因是什么? – tenorsax 2012-08-10 04:55:44

+0

[使用NULL布局时调整框架及其组件的大小]可能的副本(http://stackoverflow.com/questions/6459001/resizing-a-frame-and-its-components-when-using-null-layout) – tenorsax 2012-08-10 04:59:00

+0

我想到的最好的方法是提供相对于父容器的值,而不是提供常量值。例如'jTextField.setLocation(jPanel.getX()+ 10,jPanel.getY()+ 30);',我猜这样的代码可以使用[ComponentListener](http://docs.oracle.com/javase/tutorial/uiswing/events/componentlistener.html) – 2012-08-10 05:53:22

回答

0

其实我这样做一次

我的方法是这样的

我首先设置一个更小的尺寸窗口,然后我设置为null布局,然后设置组件的大小,可以说一个JButton。然后我得到的屏幕尺寸为我的电脑

Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize(); 

然后我算得了什么是我小的JFrame到我的电脑的fullscreensize 的宽度之比的比值,另一个用于高度,所以如果我的全屏1000x800和我的小尺寸的JFrame是500x400我知道ratiow和ratioh是1/2,所以当窗口大小调整时,将jbutton大小设置为1/2倍(在绘制方法中完成比率和设置大小的所有计算)(当屏幕调整大小时,它会自动调用paint() )或者你可以打电话repaint()

对不起,我没有旧的代码不能发布在这里。我的最后一个硬盘坏了。