なぜ私のコードがうまくいかないのか分かりませんが、それは私を狂わせてしまいます。このコードが線を引っ張っていないのはなぜですか?
コードの第二セットは私が作るときに、2匹のマウスは、それが描くクリックすること4キャンバスのを作るために必要なドライバプログラムである:
この
は、ボタンを描画し、上に描画するための領域を作成する必要があります私のクラスでありますキャンバスをもう一度クリックしてクリックすると、2回のクリックの間に行が表示されてから再描画されます。次のエラーが発生します。 エラー:無効なメソッド宣言。戻り値の型が必要です addMouseListener(this); ^ エラー:不正なタイプの開始 addMouseListener(this); ^
public class Scribble extends JPanel implements MouseListener
{
addMouseListener(this);
int x, x1, y, y1;
boolean flag = false;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(x, y, x1, y1);
}
public void mouseReleased(MouseEvent e)
{
if (!flag){
x = e.getX();
y = e.getY();
flag = true;
}
else{
x1 = e.getX();
y1 = e.getY();
flag = false;
repaint();
}
}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseMoved(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
}
public class Lab8Draw extends JFrame{
public Lab8Draw(){
Color c = new Color(100, 10, 200);
setTitle("Lab 8 - Application #1");
setLayout(new GridLayout(2,2));
Scribble s = new Scribble();
s.setBackground(Color.WHITE);
add(s);
Scribble s1 = new Scribble();
s1.setBackground(Color.RED);
add(s1);
Scribble s2 = new Scribble();
s2.setBackground(c);
add(s2);
Scribble s3 = new Scribble();
s.setBackground(Color.BLUE);
add(s3);
}
public static void main (String[] args){
Lab8Draw frame = new Lab8Draw();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 800);
frame.setVisible(true);
}
}
私はのMouseListener – Robert
エラーを実装しようとしたとき、私はこのエラーを取得:落書きは抽象的ではないとのMouseListener 落書きがJPanelのはのMouseListener ^ – Robert
あなたは規定のすべてのメソッドを実装する必要がありますを実装して拡張するパブリッククラスの抽象メソッドのmouseEntered(MouseEventの)をオーバーライドしません。 _MouseListener_インターフェイス上でこれは通常、IDE経由で行うのが最も簡単です(source-> override/Eclipse実装)。これらが空の実装であれば(実際に何もしないでください)、定義しなければなりません! –