2015-05-21 227 views
0

我對Java比較陌生,我正在嘗試進行某種測驗。我創建了3個JFrame,都在同一個包中。在我的主框架上,有兩個按鈕(一個用於英文版本,另一個用於德文版本)。我想在按下這些按鈕後切換JFrames(這樣我就可以通過按「英語」來查看我的英語測驗框架並與之互動)。查看它並不能幫助我,因爲我沒有真正體驗過它。是否有可能這樣做?如果不是,我該怎麼做?在多個JFrame之間切換

回答

5

標準方法是使用Card Layout,它允許您使用相同的JFrame,並在應用程序的不同位置使用不同的東西來填充它。因此,最初,您的JFrame會顯示加載屏幕,然後用戶按下一個按鈕,然後加載一組新組件,而不會丟棄當前的JFrame。在某些情況下,您可能還需要進行一些尺寸調整。

這是很難沒有看到任何代碼的說法,但通常情況下,是什麼做的是,你做的東西像這樣:

new Frame(args); 
this.dispose(); 

上面的代碼假定的Frame構造需要啓動和製作的護理組件可見。 this.dispose();處置當前JFrame(假設您的班級延伸JFrame)。

-1

創建一個Jframe窗口。之後創建JPanels與所有的要素,如按鈕,textfields和標籤你想要的。確保面板與Jframe的尺寸相同。面板的工作與JFrame相同,代碼明智。

此代碼將縫合在一起對你的一切:

panel.setSize(Jframe.getSize()) //That wont 
    panel.add(button); //Just remember you need to add more code to position the buttons correctly. 
         //If you using netbeans builder: 
         //You just have to use this one line in the constructor/intialiser method 
    frame.add(panel); //This will add the panel to the Jframe/Window 
         //No need to add extra code for positioning. 

如果你想在面板之間切換。在按鈕按下的方法,使用這種

frame.setContentPane(panel); //panel = panel you want to change too. 
    frame.repaint();    //Ensures that the frame swaps to the next panel and doesn't get stuck. 
    frame.revalidate();   //Ensures that the frame swaps to the next panel and doesn't get stuck. 

當你第一次開始,你必須設置內容窗格中,否則它會出現一個空白窗口的Java應用程序。

 frame.setContentPane(panel); //Starting Panel 
    frame.setVisible(true);  //Make the frame visible 

很抱歉,如果解釋不好,我沒有足夠的時間來完全解釋。

0

你有兩個按鈕在你的框架1的權利?所以首先,雙擊標有「英文」的按鈕。比方說,該按鈕的變量名是jButton1。在那個按鈕裏面輸入這個。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    this.dispose(); 
    EnglishFrame eng = new EnglishFrame(); 
    eng.setVisible(true); 
} 

然後雙擊另一個說「德語」(jButton2)的按鈕。這種類型的內部。

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
     this.dispose(); 
     GermanFrame german = new GermanFrame(); 
     german.setVisible(true); 
    } 

this.dispose() - 這將導致JFrame的窗口關閉

然後創建的另外兩種形式的對象。 (在你的情況下,英國和德國的形式)

.setVisible(true) - 這會顯示你的表單。

+0

@Vivi Huber - 檢查它是否適合您... – ShanD