云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > java画板课程设计报告

java画板课程设计报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 2:14:00

并把这些面板与画图获取加到JFrame 中,该功能截图如图1。具体代码如下

图1 主界面

public void init() { // 设置标题 this.setTitle(\未命名 - 画图\); // 初始化画图 service.initDrawSpace(this); // 设置标题获取正在使用的工具 tool = ToolFactory.getToolInstance(this, PENCIL_TOOL); // 创建鼠标运动监听器 MouseMotionListener motionListener = new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { tool.mouseDragged(e); } public void mouseMoved(MouseEvent e) { tool.mouseMoved(e); } }; MouseListener mouseListener = new MouseAdapter() { // 松开鼠标 public void mouseReleased(MouseEvent e) { tool.mouseReleased(e); } // 按下鼠标 public void mousePressed(MouseEvent e) { tool.mousePressed(e); } // 点击鼠标 public void mouseClicked(MouseEvent e) { tool.mouseClicked(e); } };

//为窗体注册监听器 drawSpace.addMouseMotionListener(motionListener); drawSpace.addMouseListener(mouseListener); createMenuBar(); // 以drawSpace为viewport去创建一个JScrollPane scroll = new JScrollPane(drawSpace); // 设置viewport ImageService.setViewport(scroll, drawSpace, bufferedImage.getWidth(), bufferedImage.getHeight()); // 将panel加到本Frame上面 this.add(scroll, BorderLayout.CENTER); this.add(toolPanel, BorderLayout.WEST); this.add(colorPanel, BorderLayout.SOUTH);

}

2.2加入菜单

把文件、查看、颜色、帮助四个菜单文字放在一个String 类型的数组menuArr 里面,并迭代这个数组去创建一个JMenu,JMenu 就是指菜单。同样,把他们下面的各个菜单项文字也放在一个String 类型的二维数组里面,去迭代创建每个JmenuItem(菜单项),每创建完一个,就为它加上一个动作监听器,去监听这个菜单项是否被点击。该功能截图如图2。具体代码如下

图2 加入菜单后的界面

public void createMenuBar() {

// 创建一个JMenuBar放置菜单

JMenuBar menuBar = new JMenuBar();

// 菜单文字数组,与下面的menuItemArr一一对应 String[] menuArr = { \文件(F)\, \查看(V)\, \颜色(C)\, \帮助(H)\ }; // 菜单项文字数组 String[][] menuItemArr = { { \新建(N)\, \打开(O)\, \保存(S)\, \, \退出(X)\ },

{ \工具箱(T)\, \颜料盒(C)\ }, { \编辑颜色\ }, { \帮助主题

\, \关于\ } };

// 遍历menuArr与menuItemArr去创建菜单

for (int i = 0; i < menuArr.length; i++) {

// 新建一个JMenu菜单

JMenu menu = new JMenu(menuArr[i]);

for (int j = 0; j < menuItemArr[i].length; j++) {

// 如果menuItemArr[i][j]等于\

if (menuItemArr[i][j].equals(\)) { // 设置菜单分隔

menu.addSeparator(); } else {

// 新建一个JMenuItem菜单项 JMenuItem menuItem = new JMenuItem(menuItemArr[i][j]);

menuItem.addActionListener(menuListener);

// 把菜单项加到JMenu菜单里面 menu.add(menuItem); } }

// 把菜单加到JMenuBar上 menuBar.add(menu); }

// 设置JMenubar

this.setJMenuBar(menuBar); }

2.3创建画图工具栏

画图工具栏,这里实现的工具有铅笔、刷子、拾色器、喷枪、橡皮擦、直线、多边形、矩形、椭圆,圆矩形,这里,每个工具我们用一个JButton 去代表它,使用JButton 的JButton(AbstractActoinaction)构造器去创建JButton,用这个构造器创建JButton,可以在AbstractAction 中加入按键的图标,以图形的方式创建按钮,另外,我们会有一个AbstractAction 的实现类。 该功能截图如图3。具体代码如下

图3 加入画图工具栏

public JPanel createToolPanel() {

// 创建一个JPanel

JPanel panel = new JPanel();

// 创建一个标题为\工具\的工具栏

JToolBar toolBar = new JToolBar(\工具\); // 设置为垂直排列

toolBar.setOrientation(toolBar.VERTICAL); // 设置为可以拖动

toolBar.setFloatable(true);

// 设置与边界的距离

toolBar.setMargin(new Insets(2, 2, 2, 2)); // 设置布局方式

toolBar.setLayout(new GridLayout(5, 2, 2, 2));

// 工具数组

String[] toolarr = { PENCIL_TOOL, BRUSH_TOOL, COLORPICKED_TOOL,

ATOMIZER_TOOL, ERASER_TOOL, LINE_TOOL, POLYGON_TOOL, RECT_TOOL,

ROUND_TOOL, ROUNDRECT_TOOL };

for (int i = 0; i < toolarr.length; i++) {

ImageAction action = new ImageAction(new ImageIcon(\ + toolarr[i] + \), toolarr[i], this);

// 以图标创建一个新的button

JButton button = new JButton(action);

// 把button加到工具栏中 toolBar.add(button); }

panel.add(toolBar); // 返回

搜索更多关于: java画板课程设计报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

并把这些面板与画图获取加到JFrame 中,该功能截图如图1。具体代码如下 图1 主界面 public void init() { // 设置标题 this.setTitle(\未命名 - 画图\); // 初始化画图 service.initDrawSpace(this); // 设置标题获取正在使用的工具 tool = ToolFactory.getToolInstance(this, PENCIL_TOOL); // 创建鼠标运动监听器 MouseMotionListener motionListener = new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { tool.mouseD

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com