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

最初に「The Use of Multiple JFrames: Good or Bad Practice?」を読んで理解してください。

最も簡単な方法は、public staticフィールドを使用して現在 (または将来) の位置を維持することです。これにより、新しいフレームを作成するたびに、次のようなものを使用できます...

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

currentXcurrentYは、現在のオフセットpublic static int位置を保持する値であり、オフセットの量を維持する値ですLOCATION_OFFSETpublic static final int

currentX親クラスまたはユーティリティ クラスの子の値である可能性がありcurrentYます。

これに関する最も重要な問題は、ユーザーの画面からウィンドウを実行できるようになったことです...

于 2013-11-03T21:52:52.230 に答える