private class MouseDemo extends JFrame implements MouseMotionListener{ int x,y; public MouseDemo() { //注册鼠标监听 jpl7.addMouseMotionListener(this); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 清空画板 jpl7.getGraphics().clearRect(0, 0, jpl7.getWidth(), jpl7.getHeight()); } }); } //重写JFrame的paint()方法 public void paint(Graphics g) { //设置画笔颜色 g.setColor(Color.black); //画一个实心圆 g.fillOval(x, y, 5, 5); } //鼠标移动的处理方法 public void mouseDragged(MouseEvent e) { //获取坐标 x=e.getX(); y=e.getY(); System.out.println(x); System.out.println(y); //重画,repaint()触发paint() this.repaint(); } //鼠标移动的处理方法 public void mouseMoved(MouseEvent e) { } 怎么重写jpl7的paintComponent方法
时间: 2024-03-23 09:36:58 浏览: 19
你可以在 `MouseDemo` 类中创建一个内部类,继承 `JPanel` 并重写 `paintComponent(Graphics g)` 方法来实现 `jpl7` 面板的绘图功能。代码如下所示:
```
private class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 在这里添加你的绘图代码
// 可以通过 Graphics 对象 g 来进行绘图
}
}
```
然后,在 `MouseDemo` 构造方法中创建一个 `MyPanel` 对象,并将其添加到 `JFrame` 中,代码如下所示:
```
public MouseDemo() {
MyPanel panel = new MyPanel();
panel.addMouseMotionListener(this);
jpl7.add(panel);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 清空画板
panel.getGraphics().clearRect(0, 0, panel.getWidth(), panel.getHeight());
}
});
}
```
这样就可以通过 `MyPanel` 类中重写的 `paintComponent(Graphics g)` 方法来实现 `jpl7` 面板的绘图功能了。