下面是我的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);
}
}
你想創建多少個JFrame?我已經在上面的代碼中看到了太多的兩個。你只需要一個。 –
我想在卡布局視圖中使用兩個窗口。一個窗口輸入信息,第二個輸出信息 – kyros