java实现画图板上画一条直线
目标:在画图板上画一条直线,供大家参考,具体内容如下
一、首先需要建立一个界面
过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。
2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。
3、写主方法去实现界面。
(目前界面还未实现画图板的功能)
publicclassDrawUI{
//显示界面的方法
publicvoidshow(){
//创建界面对象
JFramejframe=newJFrame();
//设置界面的尺寸、位置居中、关闭、标题
jframe.setSize(1000,900);
jframe.setLocationRelativeTo(null);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setTitle("画图板v2.0");
//设置界面可见
jframe.setVisible(true);
}
//主方法
publicstaticvoidmain(String[]args){
DrawUIUI=newDrawUI();
UI.show();
}
}
二、创建监听器类
1、重新创建一个监听器(Listener)的类:要在界面上实现画图,我们需要给界面添加监听器。====>实际上是让鼠标的一些指令能够在界面上有反应。换言之,监听器是一个连接鼠标与界面的桥梁。
2、监听器类(Listener)实现鼠标监听器(MouseListener)的接口.
3、加入鼠标监听器下的所有方法。
publicclassListenerimplementsMouseListener{
//鼠标点击
publicvoidmouseClicked(MouseEvente){}
//鼠标按下
publicvoidmousePressed(MouseEvente){}
//鼠标松开
publicvoidmouseReleased(MouseEvente){}
//进入
publicvoidmouseEntered(MouseEvente){}
//退出
publicvoidmouseExited(MouseEvente){}
}
三、实现画出直线
1、创建监听器类(Listener)后,我们需要在界面类中添加监听器 =====>在界面上添加监听器后,我们才能在界面上画图。(写在画图板“可见”之前)。
在画图板中输入一下代码
//创建监听器 Listenerdraw=newListener(); //添加监听器 jframe.addMouseListener(draw);
2、画一条直线,我们需要用Graphics(画布工具)用于画图。在此,画图板需要获取Graphics并且监听器对象上设置该画布。
(写在画图板“可见”之后)
//获取Graphics Graphicsgraph=jframe.getGraphics(); //给监听器的画布对象赋值 draw.setGraphics(graph);
然后转到监听器类(Listener)中输入代码
3、开始画直线
<1>首先,画一条直线我们需要获取直线两端点的坐标。所以定义x1,y1,x2,y2。
<2>画布画图,需要定义Graphics
//记录坐标 intx1,y1,x2,y2; //定义Graphics Graphicsgraph1;
<3>传画布(Graphics)值的方法====>画图板上的画布值等于监听器上的画布值
//传画布值的方法
publicvoidsetGraphics(Graphicsgraph2){
graph1=graph2;
<4>鼠标画出直线
在鼠标按下事件中输入起点坐标
publicvoidmousePressed(MouseEvente){
//获取按下信息
x1=e.getX();
y1=e.getY();
}
在鼠标松开事件中输入终点坐标,并画出直线
publicvoidmouseReleased(MouseEvente){
//获取松开信息
x2=e.getX();
y2=e.getY();
//画线
graph1.drawLine(x1,y1,x2,y2);
}
四、完整过程:
界面
packageDraw;
importjava.awt.Graphics;
importjavax.swing.JFrame;
publicclassDrawUI{
publicvoidshow(){
JFramejframe=newJFrame();
jframe.setSize(1000,900);
jframe.setLocationRelativeTo(null);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setTitle("画图板v2.0");
//创建监听器
Listenerdraw=newListener();
//添加监听器
jframe.addMouseListener(draw);
jframe.setVisible(true);
//获取Graphics
Graphicsgraph=jframe.getGraphics();
//给监听器的画布对象赋值
draw.setGraphics(graph);
}
//主方法
publicstaticvoidmain(String[]args){
DrawUIUI=newDrawUI();
UI.show();
}
}
监听器
packageDraw;
importjava.awt.Graphics;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
publicclassListenerimplementsMouseListener{
//记录坐标
intx1,y1,x2,y2;
//定义Graphics
Graphicsgraph1;
//传画布值的方法
publicvoidsetGraphics(Graphicsgraph2){
graph1=graph2;
}
publicvoidmouseClicked(MouseEvente){}
publicvoidmousePressed(MouseEvente){
//获取按下信息
x1=e.getX();
y1=e.getY();
}
publicvoidmouseReleased(MouseEvente){
//获取松开信息
x2=e.getX();
y2=e.getY();
//画线
graph1.drawLine(x1,y1,x2,y2);
}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。