2

我正在尝试创建一个启动任意数量的子窗口的程序。如何使打开的每个后续窗口都打开到右下角,以便可以同时看到所有窗口?

我已经能够使用静态变量进行此偏移,但窗口最终会被推迟到屏幕之外。我怎样才能防止这种情况?

要完全理解我的问题,请尝试启动多个计算器窗口并观察行为。有没有办法在Java中模拟它?

这是我目前正在做的事情

private static int locationOfset = 0;

public ATMWindow(ATM atm) {
    ...
    setBounds(500 + (50 * locationOfset), 300 + (50 * locationOfset), 450, 300);
    locationOfset++;
    ...
}

在你建议 CardLayout 或类似的东西之前,如果你相信的话,我真的想要多个 JFrame。

4

1 回答 1

2

首先阅读并理解多个 JFrame 的使用:好的还是坏的做法?

最简单的方法是使用一个public static字段来保持当前(或未来)的位置,这样当你创建一个新框架时,你可以使用类似...

setLocation((currentX += LOCATION_OFFSET), (currentY += LOCATION_OFFSET));

其中currentXcurrentYpublic static int保持当前偏移位置LOCATION_OFFSET的值,并且是public static final int保持偏移量的值。

currentX并且currentY可以是您认为合适的父类或实用程序类的子值

最重要的问题是现在可以在用户屏幕之外运行一个窗口......

于 2013-11-03T21:52:52.230 回答