2

私は Java のスイング コンポーネントについて独学で学んでいますが、少し概念的な障害に遭遇しました。特定の用語のいくつかが間違っていると確信していますが、1つか2つの答えを得るのに十分なほど問題をうまく伝えていることを願っています.

簡潔にするために削除された次のコードがあります。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//
public class CreateButtonSel {
    public static void main(String[] args) {
        ButtonSel thisButtonSel = new ButtonSel();
        final int WIDTH = 250;
        final int HEIGHT = 250;
        thisButtonSel.setSize(WIDTH,HEIGHT);
        thisButtonSel.setVisible(true);
    }
}

implements ActionListener(以下でコメントアウト)を追加すると、エラーが発生しButtonSel is not abstract and does not override abstract method actionPerformed(ActionEvent)ます。javadocs やさまざまなサイトで読んだことから、エラーはメソッドでアクションをまだ定義していないことが原因であることがわかりました。何かのようなもの

public void actionPerformed(ActionEvent clickButton) {
     do stuff;
     {

ただし、そのメソッドがどこに存在する必要があるかは明確ではありません。コンストラクターを持つクラスに存在すると推測していButtonSelます。これは、ボタンオブジェクトを定義している場所だからです。ただし、CreateButtonSelクラス内のメソッドとして表示され、パラメーターとして渡されることButtonSelもあります。次に、これらのボタン アクションの特性がコンストラクターに渡されるかどうか、またはどのように渡されるかという問題があります。または、クラス内にある場合、コンストラクターによって作成されたボタン オブジェクトに自動的に追加されますCreateButtonSelか?

プログラムフローがどのように機能するのか、いつどのメソッドが呼び出されるのかを説明してもらえますか?

//    public class ButtonSel extends JFrame implements ActionListener {
public class ButtonSel extends JFrame {
    JButton approveButton = new JButton("Go");
    JPanel buttonPanel = new JPanel();
 //
    public ButtonSel() {
        super("ButtonTest");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        add(approveButton);
    }
}
4

1 に答える 1

3

1 つの例については、ActionListener の作成方法を参照してください。フォーラムで他の実用的な例を検索することもできます。

于 2013-04-19T18:23:43.167 に答える