2013-11-03 31 views
1

我正在嘗試創建一個啓動任意數量的子窗口的程序。我怎樣才能讓每個後來打開的窗口都打開,並轉移到右下角,以便同時看到所有的窗口?創建具有偏移重疊的多個JFrames

我已經能夠用一個靜態變量做這個偏移量,但是窗口最終會被放到屏幕上。我怎樣才能防止呢?

要完全理解我的問題,請嘗試啓動多個計算器窗口並觀察行爲。有沒有一種方法來模擬Java?

下面是我在做什麼當前

private static int locationOfset = 0; 

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

之前建議CardLayout或類似的東西,我真正做到想多JFrames如果你能相信它。

+2

調用'myJFrame.setLocationByPlatform(true);'可以將您的GUI放在操作系統需要的地方,而且這通常是件好事。 –

+0

使用JInternalFrame - http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html –

+0

@HovercraftFullOfEels謝謝,這正是我所期待的。 –

回答

1

首先閱讀和理解The Use of Multiple JFrames: Good or Bad Practice?

最簡單的方法是使用一個public static現場維持當前(或未來)的位置,這樣,當你永遠創造了你可以使用像一個新的幀...

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

currentXcurrentY是保持當前偏移位置和LOCATION_OFFSETpublic static final int值維持所述偏移的量public static int值。

currentXcurrentY可能是父類或者你認爲合適的

與此最顯著的問題是,它現在可以關閉屏幕的用戶運行一個窗口...

一個實用工具類的子值