Java画图板程序设计报告(3)

2019-08-03 10:29

6. saveFile():保存当前所绘制图形程序段。

7. createNewItem():新建一个基本图形单元程序段。

相应的内部类有:

1. ButtonHandler:用来处理基本图形单元的按钮事件。

2. ButtonHandler1:用来处理New、Open、Save三个操作按钮的按钮事件。 3. DrawPanel:用老创建绘图区域的子类。

4. MouseA:继承了MouseAdapter,用来完成鼠标相应事件的操作,如单击、松开、

进入和离开等。

5. MouseB:继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动时的相应操

作。

4、系统测试

4.1 运行结果

1. 主界面框架 主界面类继承自JFrame类,包括构造函数及各种功能的定义,主要代码如下 :

import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*;

public class MiniDrawPad extends JFrame //主类,扩展了JFrame类,用来生成主界面 {

private ObjectInputStream input;

private ObjectOutputStream output; //定义输入输出流,用来调用和保存图像文件

private JButton choices[]; //按钮数组,存放以下名称的功能按钮

private String names[]={ \ \

\这三个是基本操作按钮,包括\新建\、\打开\、\保存\ \ \ \ \ \ \ \ \

//铅笔画,也就是用鼠标拖动着随意绘图 //绘制直线 //绘制空心矩形

//绘制以指定颜色填充的实心矩形 //绘制空心椭圆

//绘制以指定颜色填充的实心椭圆 //绘制圆形

//绘制以指定颜色填充的实心圆形

11 / 31

\//绘制空心圆角矩形 \ \ \ \ 变化

\ };

private String styleNames[]={

\宋体 \, \隶书 \, \华文彩云 \, \仿宋_GB2312 \, \华文行楷 \, \方正舒体 \\ }; //可供选择的字体项

private Icon items[];

private String tipText[]={

//这里是鼠标移动到相应按钮上面上停留时给出的提示说明条 \ \ \ \

\ \ \ \ \ \ \

\ \ \

\ \ \ };

JToolBar buttonPanel ;

//定义按钮面板

private JLabel statusBar; //显示鼠标状态的提示条

private DrawPanel drawingArea; //画图区域

private int width=800,height=550; //定义画图区域初始大小

12 / 31

//绘制以指定颜色填充的实心圆角矩形 //橡皮擦,可用来擦去已经绘制好的图案 //选择颜色按钮,可用来选择需要的颜色

//选择线条粗细的按钮,输入需要的数值可以实现绘图线条粗细的//输入文字按钮,可以在绘图板上实现文字输入

drawings[] itemList=new drawings[5000]; //用来存放基本图形的数组 private int currentChoice=3; //设置默认画图状态为随笔画 int index=0; //当前已经绘制的图形数目 private Color color=Color.black; //当前画笔颜色 int R,G,B; //用来存放当前色彩值

int f1,f2; //用来存放当前字体风格 String style1; //用来存放当前字体

private float stroke=1.0f; //设置画笔粗细,默认值为1.0f

JCheckBox bold,italic; //定义字体风格选择框

//bold为粗体,italic为斜体,二者可以同时使用 JComboBox styles;

public MiniDrawPad() //构造函数 {

super(\

JMenuBar bar=new JMenuBar(); //定义菜单条 JMenu fileMenu=new JMenu(\ fileMenu.setMnemonic('F');

2. 新建、保存、打开、退出菜单项 代码如下:

//新建文件菜单条

JMenuItem newItem=new JMenuItem(\ newItem.setMnemonic('N'); newItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e) {

newFile(); } } );

fileMenu.add(newItem);

//保存文件菜单项

JMenuItem saveItem=new JMenuItem(\ saveItem.setMnemonic('S'); saveItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e) {

saveFile(); }

//如果被触发,则调用保存文件函数段 //如果被触发,则调用新建文件函数段

13 / 31

} );

fileMenu.add(saveItem);

//打开文件菜单项

JMenuItem loadItem=new JMenuItem(\ loadItem.setMnemonic('L'); loadItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e) {

loadFile(); } } );

fileMenu.add(loadItem);

fileMenu.addSeparator();

//退出菜单项

JMenuItem exitItem=new JMenuItem(\ exitItem.setMnemonic('X'); exitItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e) {

System.exit(0); //如果被触发,则退出画图板程序 } } );

fileMenu.add(exitItem); bar.add(fileMenu);

//如果被触发,则调用打开文件函数段

3. 线条宽度、颜色、提示功能 代码如下:

//设置颜色菜单条

JMenu colorMenu=new JMenu(\ colorMenu.setMnemonic('C');

//选择颜色菜单项

JMenuItem colorItem=new JMenuItem(\ colorItem.setMnemonic('O'); colorItem.addActionListener( new ActionListener(){

14 / 31

public void actionPerformed(ActionEvent e) {

chooseColor(); //如果被触发,则调用选择颜色函数段 } } );

colorMenu.add(colorItem); bar.add(colorMenu);

//设置线条粗细菜单条

JMenu strokeMenu=new JMenu(\ strokeMenu.setMnemonic('S');

//设置线条粗细菜单项

JMenuItem strokeItem=new JMenuItem(\ strokeItem.setMnemonic('K'); strokeItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e) {

setStroke(); } } );

strokeMenu.add(strokeItem); bar.add(strokeMenu);

//设置提示菜单条

JMenu helpMenu=new JMenu(\ helpMenu.setMnemonic('H');

//设置提示菜单项

JMenuItem aboutItem=new JMenuItem(\ aboutItem.setMnemonic('A'); aboutItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null,

\0808010208 \画图板程序说明 \INFORMATION_MESSAGE ); } } );

15 / 31


Java画图板程序设计报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《喂自己影子吃饭的人》详细解析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: