设计画图工具:1.显示画图工具的界面
2.监听器:鼠标监听器方法:addMouseListener()
3.画笔:在界面程序中显示自定义内容(线段)
public class DrawUI {
//显示画图界面
public void initUI(){
//窗体
JFrame jf = new JFrame();
jf.setTitle("画图工具");
jf.setSize(900,900);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(3);
jf.setVisible(true);
//画笔:图形内容显示在哪个组件上,画笔就从该组件上获取
//从窗体上获取画笔对象,一定要在窗体显示可见之后
Graphics g = jf.getGraphics();
//给窗体添加鼠标监听器方法
//使用接口步骤:1.重新定义类继承接口 2.重写接口中的抽象方法
DrawListener listener = new DrawListener();
jf.addMouseListener(listener);
listener.gr = g;
}
public static void main(String[] args){
DrawUI ui = new DrawUI();
ui.initUI();
}
}
public class DrawListener implements MouseListener {
//引用传递
public Graphics gr; //保存传递过来的画笔对象
//全局变量:属性
public int x1, y1, x2, y2;
//重写接口中的事件处理方法
public void mouseClicked(MouseEvent e) {
System.out.println("点击");
}
public void mousePressed(MouseEvent e) {
System.out.println("按下");
//获取当前坐标值
//作用域:一对大括就是一个独立的作用域
//局部变量:1.在方法(作用域)中定义的变量 2.方法的参数
x1 = e.getX();
y1 = e.getY();
}
public void mouseReleased(MouseEvent e) {
System.out.println("松开");
x2 = e.getX();
y2 = e.getY();
//绘制图形
gr.drawLine(x1, y1, x2, y2);
//矩形
// gr.drawRect();
//椭圆
// gr.drawOval();
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}

被折叠的 条评论
为什么被折叠?



