0

こんにちは私は私のプログラムでmouselistenerアクションを実行していますユーザーがパネルをクリックすると色jpanelを作成していますが、コードの行はコードにクラスeを作成するなどのエラーを出しますが、eはすでにのインスタンスとして宣言されていますイベントクラスplzは、ここに私のコードがあります。エラーはこの行にあります " panel.addMouseListener(e); "。

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

public class randomcolor extends JFrame{
    JPanel panel;
    public randomcolor (){
        panel=new JPanel();
        panel.setBackground(rancolor());
        add(panel);
    }

    event e =new event();
    panel.addMouseListener(e);

    public Color rancolor(){
        int r= (int) (Math.random()*256);
        int g= (int) (Math.random()*256);
        int b= (int) (Math.random()*256);
        return (new Color(r,g,b));
    }

    public class event implements MouseListener{
        public void mouseClicked(MouseEvent e) {
            panel.setBackground(rancolor());
        }
        public void mousePressed(MouseEvent e) {
        }
        public void mouseReleased(MouseEvent e) {
        }
        public void mouseEntered(MouseEvent e) {
        }
        public void mouseExited(MouseEvent e) {
        }
    }

    public static void main (String args[]){
        randomcolor gui=new randomcolor();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gui.setVisible(true);
        gui.setSize(300, 300);
        gui.setTitle("color panel");
    }
} 
4

2 に答える 2

2

のイベントを大文字にしevent e = new event()ます。それはおそらくあるはずEvent e = new Event()です。コードの書式設定が奇妙に見えます。他のフォーマットエラーも隠している可能性があります.

コードが適切にフォーマットされたので、別の問題が見えてきます。あなたはおそらく持っているつもりでした

Event e = new Event();
panel.addMouseListener(e);

その右中括弧のではなく、コンストラクター内で。

于 2012-08-07T18:21:06.953 に答える