我这个代码一运行左上角就画了个圈,我的目的是通过点击鼠标才画圈,怎么去掉这个错误啊?????package gobang;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;public class Chessman extends JFrame{
private static final long serialVersionUID = 4785452373598819719L;
public Chessman() {
add(new DrawChessman());
}
public static void main(String[] args) {
Chessman frame = new Chessman();
frame.setTitle("Chessman");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 800);
frame.setVisible(true);
}
}class DrawChessman extends JPanel {
private static final long serialVersionUID = 4785452373598819719L;
private int x, y;
final int ChessSize = 30;
public void paintComponent(Graphics g) {
g.drawOval(x-ChessSize/2, y-ChessSize/2, ChessSize, ChessSize);
}
public DrawChessman() {
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
});
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;public class Chessman extends JFrame{
private static final long serialVersionUID = 4785452373598819719L;
public Chessman() {
add(new DrawChessman());
}
public static void main(String[] args) {
Chessman frame = new Chessman();
frame.setTitle("Chessman");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 800);
frame.setVisible(true);
}
}class DrawChessman extends JPanel {
private static final long serialVersionUID = 4785452373598819719L;
private int x, y;
final int ChessSize = 30;
public void paintComponent(Graphics g) {
g.drawOval(x-ChessSize/2, y-ChessSize/2, ChessSize, ChessSize);
}
public DrawChessman() {
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
});
}
}
private static final long serialVersionUID = 4785452373598819719L;
private int x, y;
final int ChessSize = 30;
private boolean flag=false;
public void paintComponent(Graphics g) {
if(flag)
g.drawOval(x-ChessSize/2, y-ChessSize/2, ChessSize, ChessSize);
}
public DrawChessman() {
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
flag=true;
repaint();
}
});
}