0

以下は、guiFrames のユーザー クラスです。メソッドを使用して複数の JFrame を作成し、それらのメソッドを cardLayout に渡すクラスが必要です。これは、ユーザーが選択した内容に応じて、各 JFrame に異なるボタンが表示されるためです。

そこで、個々のパネル用のメソッドを作成し、渡されたパラメーターに応じて異なるボタンを表示しようと考えました。パネルを cardLayout に表示する必要があります。しかし、メソッドを cardLayout.add(); に渡すことができません。メソッドタイプが無効であると表示されているためです。そのため、メソッドがコンポーネントを返すようにしようとしましたが、うまくいきません。助けてください。

        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);
  }
}
4

1 に答える 1

3

inputFrame() の最後には、何も返されません。次のように、inputFrame を返す必要があります。

return inputFrame;

それが役立つことを願っています。

于 2013-03-28T18:46:05.443 に答える