我正在尝试创建一个启动任意数量子窗口的程序。如何才能使打开的每个后续窗口都向右移动,从而可以同时看到所有窗口?
我已经能够使用静态变量进行此偏移,但最终会将窗口关闭。我该如何防止这种情况?
要完全理解我的问题,请尝试启动多个计算器窗口并观察行为。有没有办法在Java中模拟它?
这是我目前正在做的事情
private static int locationOfset = 0;
public ATMWindow(ATM atm) {
...
setBounds(500 + (50 * locationOfset), 300 + (50 * locationOfset), 450, 300);
locationOfset++;
...
}
在你推荐CardLayout之类的东西之前,如果你能相信它,我真的想要多个JFrame。
答案 0 :(得分:2)
首先阅读并理解The Use of Multiple JFrames: Good or Bad Practice?
最简单的方法是使用public static
字段来维持当前(或未来)的位置,以便在创建新框架时可以使用类似......
setLocation((currentX += LOCATION_OFFSET), (currentY += LOCATION_OFFSET));
其中currentX
和currentY
是public static int
值,其中包含当前偏移量位置,LOCATION_OFFSET
是public static final int
值,用于维持偏移量。
currentX
和currentY
可以是您认为合适的父类或实用程序类的子值
最重要的问题是,现在可以在用户界面上运行一个窗口...