2011-08-01 100 views
2

我目前有一個java文件,它具有用於創建新的GUI窗口的按鈕。我有第二個java文件,它在同一個項目中,當用戶點擊一個特定的按鈕時,我想打開它。第二個文件包含所有組件,只需要在我的「主java文件」(文件一)中啓動。我怎樣才能做到這一點? (調用和調用並實例化第二個java文件而不是該方法)。調用單獨的Java文件打開第二個GUI窗口

任何意見或建議表示讚賞。

謝謝!

回答

1

由於這篇文章沒有被標記爲已解決,我想你還沒有找到解決問題的辦法。 這裏只有兩件事情可能是錯的。你的第二課是錯的,或者你的聽衆是。所有你需要確保讓你的「第二幀」顯示的是添加setVisible(true),並創建你的第二類的新對象,如前面的帖子所述。

這是你的第二類需要什麼來創建一個空的窗口:

public class MySecondClass extend JFrame{ 

    public MySecondClass(){ 
     setSize(200, 200); 
     setVisible(true); 
     //additional calls 
    } 
} 

和你的聽衆應該如下面的mainclass的構造函數:

theButton.addActionListener(new buttonListener()); 

和最後,添加以下爲您mainclass一個內部類:

public class buttonListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
       new MySecondClass(); 
      } 
} 

,如果你仍然不能得到您的合作去工作,加入你的第二個類的構造函數打印行,一個在你的監聽器類,因此您可以找出哪些部分有故障

+0

@Johnston爲什麼這被標記爲答案?除了很早之前,似乎rosh提供了相同的信息。只是好奇。 – KyleM

1

嗯,我不知道我的理解是否正確,但是您希望在點擊按鈕時創建窗口?

試試這個:

new GUIConstructorNameHere.setVisible(true); 

PS:本GUIConstructorName是要展示類的構造方法。

+0

以及我想創建一個新的窗口,並調用具有第二Java類文件所有成品的配件已經建立 – Johnston

1

你應該爲此創建一個方法,假設你有兩個文件,例如。 file1 & file2 單擊file1中的按鈕,您必須從file1導航到file2。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
{ 
file2 f2 = new file2(); 
this.dispose(); //closes current file 
f1.seVisible(true); //opens the next file 
} 
+0

做我的路徑添加到文件中的「新文件2()」 backets?此外,我不開始在第二個文件的圖形用戶界面,所以我必須做的,我做一個調用setVisible之前 - 你的答案 – Johnston

+1

感謝你並不需要在添加路徑「新文件2()」括號,&我不認爲我們需要在第二個啓動GUI,「file2 f2 = new file2();」啓動它&「f1。seVisible(true);「只是讓它可見:) – Roshan

1

您提供的信息不足。 Java有不止一個GUI庫,Swing和SWT是我們立即想到的。如果您正在使用Swing並且想要顯示的「第二類文件」擴展了JPanel,那麼您可以創建一個新的YourSecondClass()並將其添加到您的JFrame中。在Swing所有組件必須被添加到一個容器,所以你的第二類必須是在容器(例如JPanel中),或者可以被添加到現有的容器在第二類的組件。

+0

另外,我不應該爲了實例化一個新的YourSecondClass(),你將需要了解導入語句,谷歌它(或更深入地解釋它是什麼你需要做什麼...我不想解釋對你沒有幫助的事情) – KyleM

+0

對不起,沒有指定 - 即時通訊使用Swing - 它完全放棄了我的想法 – Johnston

+1

@Johnston沒有問題。第二類擴展JPanel?如果不是,你能顯示第二類的相關代碼嗎?一般來說,任何屬於JButton這樣的組件,文本字段等都可以添加到JPanel或JFrame中,因爲它們都是容器。因此(如果你的第二個類不擴展JPanel),你應該實例化一個urObj = new YourSecondClass()並且執行你的NewJpanel.Add(urObj.textField)等。 – KyleM

相關問題