0

ええと、これは非常に新しいキューです。ウィンドウビルダーの助けを借りて自分のGUIアプリケーションのコードを自分で書くと言っています.netbeansの使用をやめることに決めました。あなたは私が調査していないと思うかもしれませんが、私を信じてください、私は宿題をしました...

私はオラクルが言う方法を試しました:

  1. イベント ハンドラー クラスを宣言し、そのクラスが ActionListener インターフェイスを実装するか、ActionListener インターフェイスを実装するクラスを拡張することを指定します。例えば:

    public class MyClass は ActionListener を実装します {

  2. イベント ハンドラー クラスのインスタンスを、1 つ以上のコンポーネントのリスナーとして登録します。例えば:

    someComponent.addActionListener(instanceOfMyClass);

  3. メソッドを実装するコードをリスナー インターフェイスに含めます。例えば:

    public void actionPerformed(ActionEvent e) { ...//アクションに反応するコード... }

そして私自身のやり方(もちろん間違っていますが、何が悪いのかわかりません)

package Todos;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Main extends JFrame {

private JPanel contentPane;
protected JButton btnNewButton;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Main frame = new Main();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });


}

/**
 * Create the frame.
 */
public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().setLayout(new BorderLayout());
    //setDefaultLookAndFeelDecorated(false);
    //setIconImage(Image imagen);
    setTitle("");
    setSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
    setPreferredSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
    setLocationRelativeTo(null);

    this.btnNewButton = new JButton("New button");
    this.btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            asd(arg0);
        }
    });
    this.getContentPane().add(this.btnNewButton, BorderLayout.NORTH);
}

public void asd(ActionEvent arg0) {
    this.getContentPane().add(new JButton("asd"));
}
}

このコードが機能しない理由は、ActionPerformed イベントで JFrame に追加しようとしている JButton がクリックしても表示されないことです。

これはコードの例であり、ばかげているように見えるかもしれませんが、私の問題は数行のコードにあり、穴のプロジェクトを表示する必要がないため、キューが単純化されていると思います。

前もって感謝します!

4

1 に答える 1