私はペイントに似たものを作ろうとしていますが、ちょっとした障害に遭遇しました。基本的に、paintComponent() を呼び出す JPanel でペイントします。ただし、プログラムを実行すると、左上隅に不要なドットが表示されます。プログラムの開始時に paintComponent() が呼び出されるためだと思います。これを無効にする方法はありますか?コードを以下に示します (インポートを削除しました)。お読みいただきありがとうございます。ペイントボード クラスは次のとおりです。
public class PaintBoard extends JPanel implements MouseListener
{
Image img;
//PaintBoard panel;
int circleX = 25;
int circleY = 25;
int x;
int y;
public PaintBoard()
{
this.addMouseListener(this);
}
public void paintComponent(Graphics g)
{
g.setColor(Color.RED);
g.fillOval(x, y, circleX, circleY);
}
public void mouseClicked(MouseEvent arg0)
{
}
public void mouseEntered(MouseEvent arg0)
{
}
public void mouseExited(MouseEvent arg0)
{
}
public void mousePressed(MouseEvent arg0)
{
x = arg0.getX();
y = arg0.getY();;
repaint();
}
public void mouseReleased(MouseEvent arg0)
{
}
}
そして、ここにメインクラスがあります:
public class Main
{
JFrame mainFrame = new JFrame("Painting test");
PaintBoard board = new PaintBoard();
public Main() throws IOException
{
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(1750, 1000);
mainFrame.setLayout(new GridLayout(2, 2));
mainFrame.add(board);
//mainFrame.pack();
mainFrame.setVisible(true);
}
public static void main(String[] args) throws IOException
{
new Main();
}
}