java新手求助,关于GUI

来源:百度知道 编辑:UC知道 时间:2024/05/09 05:18:53
想在组件上划线,模仿画图板,就是说鼠标按下并拖动,从刚开始按下的点到后来停住的点之间划线线要跟着动,知道鼠标停在一个地方(已经释放鼠标键了),怎么做啊 !!谢谢

用MouseAdapter,重载mousePressed,mouseReleased,以及mouseDragged
this.addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e){
//自己写
repaint();
}
});
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {

}
public void mouseReleased(MouseEvent e) {
//自己写 repaint();
}
});
用适配器的好处是不用实现所用方法,只要声明两个point对象作为划线的起点和终点,传给paintComponent(Graphics g)方法中g.drawline方法就可以了。具体实现自己想吧!

我给你个想法:在MousePress(鼠标按下时MouseListenner)中GetX();GetY;
在MouseDraged(鼠标按下并拖动时MouseMotionListener)中再GetX();GetY;然后根据第一个X,Y和第二个X,Y用Graphics类的DrawLine();画线!

下面的程序参考,没有实现你要的功能!注意在画线时,常常得传个compenent去getContentPane().

//程序开始
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class MouseEventDemo extends JFrame implements MouseListener,MouseMotionListener
{
private JLabel statusBar;