私は 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);
}
}