2013-03-28 66 views
0

下面是我的guiFrames用戶類。我想要一個創建幾個帶有方法的JFrame的類,並將這些方法傳遞給cardLayout。原因是每個JFrame將根據用戶選擇的內容顯示不同的按鈕。如何將通過方法創建的JPanels添加到cardLayout.add();

所以,我想我會爲個別面板創建方法,並根據傳遞的參數顯示不同的按鈕。我需要將面板顯示在cardLayout中。但是我無法將傳入的方法傳遞給cardLayout.add();因爲它說方法類型是無效的。所以我試圖讓這個方法返回一個Component,但它沒有工作。請幫助。

 import javax.swing.*; 
import java.awt.*; 

public class guiFrames extends JFrame{ 

    public guiFrames(){ 
    } 

    public Component inputFrame(){ 
    JFrame inputFrame = new JFrame("Input"); 

    JPanel inputPnl = new JPanel(); 
    inputPnl.setLayout(new GridLayout(3,2)); 

    JLabel loginLbl = new JLabel("Login"); 
    inputPnl.add(loginLbl); 
    JTextField loginTxt = new JTextField(); 
    inputPnl.add(loginTxt); 
    JLabel pwLbl = new JLabel("Password"); 
    inputPnl.add(pwLbl); 
    JTextField pwTxt = new JTextField(); 
    inputPnl.add(pwTxt); 

    JPanel buttonPnl = new JPanel(); 
    buttonPnl.setLayout(new FlowLayout(FlowLayout.LEFT, 1,5)); 

    JButton submit = new JButton("Submit"); 
    buttonPnl.add(submit); 
    JButton output = new JButton("Output"); 
    buttonPnl.add(output); 

    JPanel container = new JPanel(); 
    container.setLayout(new BorderLayout()); 
    container.add(inputPnl, BorderLayout.CENTER); 
    container.add(buttonPnl, BorderLayout.SOUTH); 

    inputFrame.add(container); 
    inputFrame.pack(); 
    inputFrame.setVisible(true); 
    inputFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    return; 
    } 

    public void cardView(){ 
     JFrame cardFrame = new JFrame(); 
     JPanel cardGUI = new JPanel(); 
     CardLayout cards = new CardLayout(); 
     cardGUI.setLayout(cards); 
     cardGUI.add(inputFrame(), "first"); 

     cardFrame.add(cardGUI, BorderLayout.CENTER); 
     cardFrame.pack(); 
     cardFrame.setVisible(true); 
     cardFrame.setDefaultCloseOperation(cardFrame.EXIT_ON_CLOSE); 
    } 
} 
+0

你想創建多少個JFrame?我已經在上面的代碼中看到了太多的兩個。你只需要一個。 –

+0

我想在卡布局視圖中使用兩個窗口。一個窗口輸入信息,第二個輸出信息 – kyros

回答

3

在inputFrame()結束時,你沒有返回任何東西。你需要返回inputFrame,像這樣:

return inputFrame; 

希望有幫助。

+0

是的,謝謝....工作 – kyros

相關問題