0

次のコードを使用して、三目並べボードを作成しようとしています。私は何を理解していません

button.addActionListener(これ);

が行われており、そこで使用されている理由this

package guicollection;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DrawTicTacToe extends GUIcollection
        implements ActionListener {

    private JButton button;
    private JPanel pane1;

    void drawTicTacToe() {

        DrawTicTacToe frame = new DrawTicTacToe();
        frame.setSize(400, 300);
        frame.createGUI();
        frame.setVisible(true);
    }

    private void createGUI() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        Container window = getContentPane();
        window.setLayout(new FlowLayout());

        pane1 = new JPanel();

        pane1.setPreferredSize(new Dimension(300, 200));
        pane1.setBackground(Color.yellow);
        window.add(pane1);

        button = new JButton("Prss me");
        window.add(button);
        **button.addActionListener(this);**

    }

    public void actionPerformed(ActionEvent event) {
        Graphics paper = pane1.getGraphics();
        paper.drawLine(90, 30, 90, 120);
        paper.drawLine(135, 30, 135, 120);
        paper.drawLine(60, 60, 165, 60);
        paper.drawLine(60, 90, 165, 90);


    }

}

thisactionPerformedに置き換えられないのはなぜですか?

4

4 に答える 4

0

メソッドは、それを呼び出したオブジェクトを参照する必要がある場合があります。これを可能にするために、Java は thisキーワードを定義します。これは、現在のオブジェクトを参照するために任意のメソッド内で使用できます。つまり、これは常に、メソッドが呼び出されたオブジェクトへの参照です。これは、現在のクラスの型のオブジェクトへの参照が許可されている場所ならどこでも使用できます。

あなたの場合、これは DrawTicTacToe クラス オブジェクトを指します。それで

 button.addActionListener(this);

この ActionListener のアクションは、DrawTicTacToeにあるこのクラスで見つけることができることを意味します

于 2012-12-06T18:15:03.810 に答える
0

http://www.java2s.com/Code/JavaAPI/javax.swing/JButtonaddActionListenerActionListeneract.htm

質問する前に必ずドキュメントを読んでください。

JButton.addActionListener(ActionListener act)タイプ ActionListener のパラメーターが必要actionPerformedです。これは正しいタイプではないメソッド コレクションです。thisDrawTicTacToe、GUIcolletion、および ActionListener のタイプの現在のオブジェクトです (これらのスーパークラスが何であるかに応じて、おそらくさらにいくつか)。

于 2012-12-06T18:05:51.073 に答える
0

DrawTicTacToe クラスの現在のインスタンスをそのボタンのリスナーとして登録しています。ボタンがクリックされると、actionPerformed メソッドが呼び出されます。

于 2012-12-06T18:07:39.973 に答える
0

ここでの「これ」は、DrawTicTacToe クラスの現在のインスタンスによって実装される ActionListener インターフェースを指します。これは、このコード行で ActionListener をボタンにバインドし、ボタンに対して特定のイベントが発生するたびにその actionPerformed メソッドが実行されることを意味します。と呼ばれる

于 2012-12-06T18:08:03.453 に答える