0

私はここで非常に基本的なアプリケーションを作成しています.数倍複雑なGUIアプリケーションをコーディングしました.

パネルは、1 つのボタンと 1 つの Jtextfield の 2 つの基本コンポーネントで構成されます。ボタンが表示されることがありますが、Jtextfield は表示されませんか?

GridBagLayout を使用しています。以下は非常に単純なコードです。

public class Start extends JFrame implements ActionListener{

public static HomeList home;
public static String user = "default";
public GridBagConstraints c = new GridBagConstraints();

public Start(){

    super("title");
    this.pack();
    this.setSize(800, 500); // w h
    this.setBackground(Color.DARK_GRAY);
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setResizable(false);
    this.setVisible(true);

    JPanel pane = new JPanel();
    pane.setLayout(new GridBagLayout());
    pane.setPreferredSize(new Dimension(300, 100));
    pane.setBackground(Color.BLUE);
    this.getContentPane().add(pane, BorderLayout.CENTER);


        JButton button = new JButton("Enter");
        button.setActionCommand("login");
        button.addActionListener(this);
        c.gridx = 0;
        c.gridy = 0;
        pane.add(button,c);

        JTextField text = new JTextField(20);
        text.setVisible(true);
        c.gridx = 1;
        c.gridy = 0;
        pane.add(text,c);


}

public static void main(String[] args) {

    new Start();
}

@Override
public void actionPerformed(ActionEvent ae) {

    if("login".equalsIgnoreCase(ae.getActionCommand())){
        this.dispose();
        home = new HomeList(user);
    }
}


}
4

3 に答える 3

3

問題は、setVisible(true)コンポーネントをjframeに追加する前に使用していることです

于 2013-06-20T16:57:04.453 に答える
1

this.setVisible(true);コンストラクタの最後に移動

コンポーネントは、構築後に可視化する必要があります。

于 2013-06-20T16:58:32.393 に答える
0

this.update()フレームに何かを追加するときは、おそらくメソッドを試してみてください。

于 2013-06-21T08:46:22.127 に答える