(一)实现画图程序所需要的APT类:
![]()
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.text.AbstractDocument.Content;
/**
* 定义一个画图界面类,该类继承自JFrame窗体类.
*/
public class DrawFrame extends JFrame {
/**
* 程序入口主函数
*/
public static void main(String[] args) {
// 实例化窗体类的对象,调用初始化界面的方法
DrawFrame dl = new DrawFrame();
dl.initUN();
// dl.setBackground(Color.WHITE);这个是错误的不能改变窗体的颜色。
}
public void initUN() {
setTitle("简单画图");
setSize(600, 500);
setDefaultCloseOperation(3);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
JButton butLine = new JButton("直线");
this.add(butLine);
JButton butSquare = new JButton("矩形");
add(butSquare);
JButton butRotundity = new JButton("圆");
add(butRotundity);
JButton butS = new JButton("任意多边形");
add(butS);
JButton but = new JButton("画笔");
add(but);
JButton butt = new JButton("刷子");
add(butt);
JButton but1 = new JButton("橡皮擦");
add(but1);
JButton but2 = new JButton("喷枪");
add(but2);
getContentPane().setBackground(Color.WHITE);//getContenPane为 改变窗口的颜色。
/**
* //实例化一个流失布局类的对象,布局类是针对容器的,容器上要填多个组件,那么必须要设置排列对齐方式;
* java.awt.FlowLayout fl=new java.awt.FlowLayout();
* jf.setLayout(fl);//设置窗体的布局方式为流式布局 //定义一个ImageIcon类,该类用来读取一个磁盘的图片文文件。
*/
setVisible(true);
Graphics g = getGraphics();// 获取窗体上画笔画布对象(注意:必须要在窗体可见之后才能获取画笔画布对象,否则获取的是null)
// 4.在DrawFrame类中实例化LoginListener事件处理类的对象dn;
LoginListener dn = new LoginListener();
addMouseListener(dn);// 5.给事件源窗体对象添加addMouseListener()鼠标监听方法,指定事件处理类对象dl.
addMouseMotionListener(dn);
butLine.addActionListener(dn);// 要加监听方法才能获取数值。
butSquare.addActionListener(dn);// 要加监听方法才能获取数值。
butRotundity.addActionListener(dn);// 要加监听方法才能获取数值。
butS.addActionListener(dn);// 要加监听方法才能获取数值。
but1.addActionListener(dn);
but.addActionListener(dn);
butt.addActionListener(dn);
but2.addActionListener(dn);
dn.SetG(g);
// dl.SetJ(butS);
// dl.SetJ(butRotundity);
// dl.SetJ(butSquare);
// dl.SetJ(butLine);
}
}
DrawFrame.java