Java中画图板的制作
前提:创建界面
在制作画图板之前,我们首先要做的是创建一个可见的界面,然后才能向界面中安插画布。
那么,如何创建界面以及设置界面的大小等参数呢?下面就来做一个案例看看。
首先,我们要引用系统中自带的表示界面的类——JFrame
import javax.swing.JFrame;
其次,我们要创建一个界面对象,并对该对象进行命名,在这里我们给界面对象命名为drawFrame(当然你也可以设为其他名称)。
JFrame drawFrame = new JFrame();
接下来我们进行界面参数的设置。
先设置界面的大小
drawFrame.setSize(weight,height);
weight与height即为你想要设置界面的宽和高,就像你平时在桌面观看的大小像素一样。在实际应用时,填入你想要设置的数值即可。
设置界面出现位置
我们希望界面出现在屏幕的正中央,则采取如下方式
drawFrame.setLocationRelativeTo(null);
然后我们插入一个关闭键即可退出当前线程的操作:
drawFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
最后我们来设置界面可见:
drawFrame.setVisiblie(true);
一个简易的界面便编写完成了。
具体编写
创建画布
Graphics是Java中经常应用的一种类——画图板类。
首先我们依旧要引用系统中的画图板类:
import java.awt.Graphics;
然后要把画布与界面进行连接:
Graphics g=drawFrame.getGraphics();
画布的一些方法
画直线:
g.drawLine(x1, y1, x2, y2);
画圆:
g.fillOval(x, y, width, height);
更多效果就不进行一一列举啦,小伙伴们可以在网络上自行查询o~
监听器的加入
当我们想要通过外设去改变画布上呈现出的效果,要怎么做?
举个例子,比如我们想要通过按下界面上的某个按钮来在画布内增加一条已定位置的直线:
首先我们要在主界面内增加一个按钮:
(①引用按钮类JButton)
import javax.swing.JButton;
(②创建按钮对象)
JButton btn=new JButton();
(③将按钮添加到界面上)
drawFrame.add(btn);
(注:②③两步都要加在界面创建的方法中o~)
接着我们来创建监听器:
在当前包内new一个class,取一个易于理解的名称,使用接口连接动作监听器(这里我按照我的习惯取的名称,大家也可以进行更换):
public class Btnlistener implements ActionListener{
//加入ActionListener所附带的相关方法
public void actionPerformed(ActionEvent e){
g.drawLine(10,10,100,100);}
}
最后我们把监听器添加在按钮上:
(引用监听器类ActionListener)
import java.awt.event.ActionListener;
(创建监听器对象)
Btnlistener btnlistener=new Btnlistener();
(添加监听器到按钮上)
btn.addActionListener(btnlistener);
好了,到此我们就完成了在界面内点击按钮即可显示固定位置一条直线的基本操作了。
下面我们来尝试更高级的操作。
尝试使用鼠标监听器绘制图形
这次我们尝试利用鼠标的两次点击去绘制相关直线。
前面关于界面的创建以及监听器的加入方法都是一样的,在这里就不再进行重复了,下面我们来讲一下鼠标点击位置横纵坐标的获取。
(首先先编写好鼠标监听器及相关方法)
public class DrawListener implements MouseListener {
//记录坐标的数字
int x1,x2,y1,y2;
Graphics g;
//画布
public void mousePressed(MouseEvent e) {
//记录坐标
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(MouseEvent e) {
x2=e.getX();
y2=e.getY();
System.out.println("鼠标按下的位置("+x1+","+y1+")");
//设置颜色
Color color =new Color(600,200,200);
g.setColor(color);
//画线
g.drawLine(x1, y1, x2, y2);
}
public void mouseClicked(MouseEvent e) {};
public void mouseEntered(MouseEvent e) {};
public void mouseExited(MouseEvent e) {};
}
如上便是加入鼠标监听器并设置鼠标的第一次点击点与第二次点击点为初末位置并进行画线的基本操作。
接下来我们继续重复上个实验的操作——在主界面中加入监听器。
DrawListener drawlistener=new DrawListener();
drawFrame.addMouseListener();
这样我们就完成了对于简易画图板编写的一些基础操作。如果想要丰富画图板的功能,也欢迎小伙伴们进行相关尝试鸭~