好的,在过去的26个小时里,我一直试图通过指南和在线帮助来解决这个问题,但没有成功。
我想做的就是当用户点击PaintPanel时画一个椭圆请来人帮帮我,这样我就可以睡觉了:P

在PaintApplet类中:
private void PaintPanelMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(FillRadioButton.isSelected())
{
PaintPanel.setBackground(JColor.getColor());
PaintPanel.repaint();
}
if(BrushRadioButton.isSelected())
{
Point ComponentPoint = PaintPanel.getLocationOnScreen();
PaintPanel.add(new Painter(ComponentPoint));
}
} Painter类:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
public class Painter extends JPanel{
Point Component;
public Painter(Point Com)
{
Component = Com;
}
public void paintComponent(Graphics g)
{
super.paint(g);
Point CursorPoint= MouseInfo.getPointerInfo().getLocation(); //gets cursorpoint
int ComPX = Component.x;
int ComPY = Component.y;
int CurPX = CursorPoint.x;
int CurPY = CursorPoint.y;
int FinalX = CurPX - ComPX;
int FinalY = CurPY - ComPY;
g.drawOval(FinalX, FinalY, 20, 20);
}
}发布于 2013-03-25 02:30:28
不要打电话
super.paint(g);在paintComponent中。这将导致绘制链机制中的无限循环。相反,您需要
super.paintComponent(g);要获得更好的帮助,可以考虑发布一个SSCCE
https://stackoverflow.com/questions/15602235
复制相似问题