关于java的paintComponet的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:01:46
写了个JAVA程序 想让它实现用鼠标拖动在屏幕上画线的功能 下面是实现功能的PANE 但是将Pane加入Frame之后 只能显示个红背景的框架 画线功能无法实现 好像是paintComponet根本没起作用 哪位大侠帮帮我
import java.awt.*;
import javax.swing.JPanel;
import java.awt.event.*;

public class shubiaopanel extends JPanel{
private Point p1=null,p2=null;

public void piantComponent(Graphics page)
{
super.paintComponent(page);
page.setColor(Color.yellow);
if(p1!=null&&p2!=null)
page.drawLine(p1.x, p1.y, p2.x, p2.y);}

public shubiaopanel(){

Ml ls=new Ml();
addMouseListener(ls);
addMouseMotionListener(ls);
setBackground(Color.red);
setPreferredSize(new Dimension(500,500));
}

private class Ml implements MouseListener,MouseMotionListener
{public void mousePressed(MouseEvent event)
{p1=event.getPoint();

}
public void mouseDragged(MouseEvent event)
{p2=event.getPoint();
repaint();
}
public void mouseCl

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class shubiaopanel extends JFrame implements MouseListener,MouseMotionListener{
private Point p1=null,p2=null;

public static void main(String[] args){
new shubiaopanel().setVisible(true);
}

public void paint(Graphics page) {
super.paint(page);
page.setColor(Color.red);
if(p1!=null&&p2!=null)
page.drawLine(p1.x, p1.y, p2.x, p2.y);
}

public shubiaopanel(){
addMouseListener(this);
addMouseMotionListener(this);
setLocation(100,100);
setSize(500,500);
}

public void mousePressed(MouseEvent event){
p1=event.getPoint();
}
public void mouseDragged(MouseEvent event){
p2=event.getPoint();
repaint();
}

public void mouseClicked(MouseEvent event){}
public void mouseReleased(MouseEvent event){}
public void mouseMoved(MouseEv