创建具有偏移重叠的多个JFrame

时间:2013-11-03 21:46:49

标签: java swing jframe

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

我已经能够使用静态变量进行此偏移,但最终会将窗口关闭。我该如何防止这种情况?

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

这是我目前正在做的事情

private static int locationOfset = 0;

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

在你推荐CardLayout之类的东西之前,如果你能相信它,我真的想要多个JFrame。

1 个答案:

答案 0 :(得分:2)

首先阅读并理解The Use of Multiple JFrames: Good or Bad Practice?

最简单的方法是使用public static字段来维持当前(或未来)的位置,以便在创建新框架时可以使用类似......

的内容。
setLocation((currentX += LOCATION_OFFSET), (currentY += LOCATION_OFFSET));

其中currentXcurrentYpublic static int值,其中包含当前偏移量位置,LOCATION_OFFSETpublic static final int值,用于维持偏移量。

currentXcurrentY可以是您认为合适的父类或实用程序类的子值

最重要的问题是,现在可以在用户界面上运行一个窗口...