//一、创建一个界面;
先写一个DrawUI类.(自己可随意命名,但下面要一致)
设置窗体的:标题 尺寸 关闭功能 可视化
//创建一个类DrawUI
public class DrawUI{
//绘制界面的方法(即这个类里面的方法)(成员方法)
public void initUI(){
//新建一个界面对象
JFrame jf = new JFrame("图形图像");
//设置界面大小
jf.setSize(1000,800);
//设置关闭页面时的操作
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //注意是用JFrame来调用退出方法
//将页面可视化(一般在设置好界面之后)
jf.setVisible(true);
}
}
//二、再加上鼠标监听;
1、MouseListener:监听在鼠标上的操作;
2、用Ctrl+鼠标左键可查看有五种操作方法:点击,按下,释放,进入,离开
3、使用鼠标监听器的方法:
3.1 创建一个类DrawListener,用implement实现 MouseListener 的功能
public class DrawListener implements MouseListener{}
3.2 复制并重写五种操作方法,在每一个方法加入输出语句查看效果(System.out.println(" "))
3.3 点击 方法里,用对象e来获取x,y坐标
3.4 按下 方法里,获取x1,y1 的坐标;
3.5 释放 方法里,获取x2,y2的坐标;
3.6 进入和离开 方法里,现只加入输出语句查看效果;
3.7 MouseEvent 用于获取对象;
public class DrawListener implements MouseListener{
int x1,y1,x2,y2;
java.awt.Graphics g= null; //在设置之前将对象设置为空
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
System.out.println("mouseClicked" + x+" "+y);
}
public void mousePressed(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
System.out.println("mousePressed" + x1 +" "+y1);
}
public void mouseReleased(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
g.drawLine(x1,y1,x2,y2);
System.out.println("mouseReleased" + x2+" "+y2);
}
public void mouseEntered(MouseEvent e) {
System.out.println("mouseEntered");
}
public void mouseExited(MouseEvent e) {
System.out.println("mouseExited");
}
}
运行后弹出窗口界面,点击鼠标左键,获取此处坐标,拖动鼠标,在另一点放开获得坐标,即可画出一条直线。
4、Graphics 实现在屏幕上绘制的功能
dl.g = getGraphics (); // x1, y1, x2, y2 按下释放的坐标
// 在释放时执行下面这行代码
g.drawLine (x1, y1, x2, y2);
//添加鼠标监听器:
DrawListener dl = new DrawListener();
//添加监听对象 dl;
jd.addMouseListener(dl);
//必须在可视化之后获取;
Graphics g= jf.getGraphics();
//传递给监听对象
dl.g = g;
//三、创建监听对象,获取鼠标操作的坐标;
Graphics g= jf.getGraphics();
必须在可视化之后获取;
//四、传递画笔给监听器绘制直线;
dl.g=g;
//五、主方法部分
public class DrawUI{
public static void main(String[] arg){ //主方法部分,绘制界面
DrawUI drawUI = new DrawUI();
drawUI.initUI();
}
}
PS:
//1、导入文件放在头上,用到相应方法时不要忘记加:
import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
//2、退出方法有四种
DO_NOTHING_ON_CLOSE 退出时什么也不做。 点×时没反应,关闭不了界面;
HIDE_ON_CLOSE 退出时界面消失,但后台还在运行;
DISPOSE_ON_CLOSE 关闭时进行销毁操作,需要一段时间才会结束后台;
EXIT_ON_CLOSE 关闭时全部关闭。