1

JPanel を拡張しているカスタム スイング コンポーネントでクリックをどのように処理しますか。私はゲームを作成していますが、クリックをどのように処理できるか疑問に思っています。具体的には、GUI とは別のスレッドで、ペイントしますか? ここでこれを行う方法は私のコードです:

  package com.games.bubblecards;

    import java.awt.Graphics;
    import java.awt.Graphics2D;

    import javax.swing.JPanel;

    public class Canvas extends JPanel {
        private static final long serialVersionUID = 1L;

        public Canvas() {
            super();
        }

        public void paint(Graphics g) {
            Graphics2D g2d = (Graphics2D)g;
            g2d.drawString("Hello It Works", 10, 10);
        }

}
4

1 に答える 1

2

コンポーネントに MouseListener を追加することでマウス クリックを処理します。これは、標準の Swing コンポーネントでも、Swing コンポーネントを拡張するカスタム コンポーネントでも同じです。マウス リスナーのメソッドは、Swing のメイン スレッドである EDT で呼び出す必要があります (デフォルトでは、これは特別なコードを必要とせずに行われます) が、必要に応じてリスナー コードでバックグラウンド スレッドをセットアップして開始することができます。

于 2011-04-03T18:30:24.533 に答える