ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:589.98KB ,
资源ID:18598573      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18598573.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于JAVA的 图像处理软件文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于JAVA的 图像处理软件文档格式.docx

1、2、用户界面的开发工具包Swing简介Swing是一个用于开发Java应用程序用户界面的开发工具包,以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。创建图形界面步骤:(1)导入Swing包;(2)选择界面风格;(3)设置顶层容器;(4)设置按钮和标签;(5)将组件放到容器上;(6)为组件增加边框;(7)处理事件;(8)辅助技术支持。导入Swing包下面语句导入Swing包import javax.swing.*;大部分Swing程序用到了AWT的基础底层结构和事件

2、模型,因此需要导入两个包:import java.awt.*;import java.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包:import javax.swing.event.*;选择界面风格Swing允许选择程序的图形界面风格常用的有java风格,windows风格等。下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。try UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName( ); catch (Exception e) 设置顶层容器图形

3、界面至少要有一个顶级Swing容器,顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持。常用的顶级容器:JFrame(框架):表示主程序窗口JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口JApplet(小程序):在浏览器内显示一个小程序界面一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格。窗格也可以看作是一种面板,但它是框架的一个组成部分;组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上。用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板。public sta

4、tic void main(String args)JFrame frame=new JFrame(SwingApplication);JPanel panel1=new JPanel();frame.getContentPane().add(panel1,BorderLayout.CENTER);./ 添加其他组件frame.pack();frame.setVisible(true); 模式使用关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。GraphicsEnvironment为Java应用程序提供了特定平台的

5、GraphicsDevice对象和 Font 对象集合。这些GraphicsDevice可以是各种本机和远端机器的资源,如屏幕、打印机或者是Image Buffer,甚至是Graphics2D绘图方法的目标对象。而GraphicsDevice就是指特定的图形环境了,如屏幕和打印设备等。这样,我们就可以用GraphicsDevice来操纵屏幕了。GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的。事件处理监听器:ActionListener 方 法:actionPerformed 事 件:ActionEvent String getActionCo

6、mmand() actioncommand是控件内部的一个字符串,用于标识控件的状态。此函数可以取得控件的状态,从而决定到底该做什么。 int getModifiers() 取得“产生此事件时,用户同时按下的组合键” long getWhen() 取得“产生此事件时的时间戳” 事件产生原因:点击按钮,在列表框中选择内容,在文本框中点回车,计时器到期 AdjustmentListener adjustmentValueChanged AdjustmentEvent Adjustable getAdjustable() adjustable是一个接口,各种滚动条都实现了这个接口。 int getA

7、djustmentType()取得滚动类型,共有UNIT_INCREMENT,UNIT_DECREMENT,BLOCK_INCREMENT,BLOCK_DECREMENT,TRACK共5种类型 int getValue()取得滚动滑块的当前值滚动条的滚动 ItemListener itemStateChanged ItemEvent Objedt getItem() 取得被选中的元素。注意,返回值是Object,还应该进行强制类型转换。 ItemSelectable getItemSelectable() ItemSelectable是一个接口,代表那些包含了n个可供选择的子元素的对象。此方法

8、返回产生此事件的对象。此方法的作用主要在于,如果一个列表框是允许多选的,那么上面的方法就不好用了,应该用此方法得到列表对象,再取得被选中的多个元素。 int getStateChange() 取得选择的状态,是SELECTED还是DESELECTED 各种按钮的点击,列表框的选择 FocusListener focusGained、focusLost FocusEvent Component getOppositeComponent() 得到“参与焦点变换的”另一个对象。如果是焦点取得事件,则返回之前拥有焦点的对象;如果是焦点失去事件,则返回得到焦点的对象。若焦点转移到另外一个应用程序,返回n

9、ull boolean isTemporary() 焦点是临时性转移还是永久转移。临时性转移:用鼠标拖动窗口或者窗口变为非激活状态。其他为永久性转移。各种组件的焦点变化KeyListenerkeyPressed、keyReleased、keyTyped KeyEvent char getKeyChar() 此方法只在keytyped中有效,返回按下的字符。比如按下shift+a,返回A int getKeyCode() 取得键盘上按键的整数编码。请注意,是键盘上的按键,比如F1,Ctrl,Home键等等,都有相应编码。不支持组合键,也就是说“Shift+a”和“a”返回同样的内容,都是小写a的

10、ASCII码。但是大键盘的数字键和小键盘的数字键返回内容不同。 static String getKeyModifiersText(int modifiers) 将掩码转化为字符串,比如“Ctrl”,“Ctrl+Shift”等。注意它是static方法 static String getKeyText(int keyCode)返回keyCode代表的按钮的名字,比如Home,F1等。注意它是statci方法在各种组件上敲击键盘MouseListenermouseClicked、mousePressed、mouseReleased mouseEntered、mouseExited MouseEv

11、ent Point getLocationOnScreen()返回鼠标相对于显示屏幕的绝对坐标(Java1.6版提供) int getXOnScreen()返回鼠标相对于显示屏幕的X的绝对坐标(java 1.6版提供) int getYOnScreen() 返回鼠标相对于显示屏幕的Y的绝对坐标(java 1.6版提供) Point getPoint()返回鼠标相对于组件的绝对坐标 int getX()返回鼠标相对于组件的X的绝对坐标 int getY()返回鼠标相对于组件的Y的绝对坐标 void translatePoint(int x, int y)给鼠标的做用点加上一个偏移量。比如2个参数

12、分别是10, 20,你要用鼠标画直线,当你鼠标指向100,100开始画,实际上的线是画在110,120处 int getClickCount() 产生此事件时鼠标共点击了多少下(单击、双击、三击) int getButton() 产生此事件时,鼠标的哪个键被点击了:NOBUTTON, BUTTON1, BUTTON2 或者 BUTTON3 boolean isPopupTrigger() 是否能够触发一个弹出式菜单。由于各平台触发弹出式菜单的情况不一样,因此应该在mousePressed 和 mouseReleased中都检测一下 在任何组件上点击鼠标、将光标移动进来或出去 MouseMoti

13、onListener mouseDragged、mouseMoved 在任何组件上移动鼠标 MouseWheelListener mouseWheelMoved MouseWheelEvent int getScrollType() 滚动的类型,是按块滚动WHEEL_BLOCK_SCROLL还是按单位滚动WHEEL_UNIT_SCROLL int getScrollAmount() 返回为相应此事件应该滚动的单位数。此方法有效的前提是按单位滚动。 int getWheelRotation() 鼠标滚轮滚动过程中”咔嚓“声的数目。向上滚为负值,向下滚为正值 在任何组件上滚动鼠标中键 Window

14、Listener windowOpened、windowClosing、windowClosed、windowIconified windowDeiconified、windowActivated、windowDeactivated WindowEvent Window getWindow() 返回发生此事件的window对象 Window getOppositeWindow() 若发生了焦点转移,返回另一个参与此事件的window对象,或者null int getOldState() 窗口变化前的状态:NORMAL、ICONIFIED、MAXIMIZED_BOTH int getNewSta

15、te() 窗口变化后的状态 窗口发生变化 WindowFocusListener windowGainedFocus、windowLostFocus 窗口得到或失去焦点 WindowstateListener WindowstateChanged 窗口状态改变四、代码分析package imust.imageprocessing;import java.awt.image.*;import java.io.File;import java.io.FileFilter;import java.io.IOException;import javax.imageio.ImageIO;public c

16、lass ImageProcessing extends JFrame String filepath=; String filename= File file2; BufferedImage buffimg=null; ImageIcon ic; Image ia,l; JLabel jLabel1=null; BorderLayout borderLayout1=new BorderLayout(); JMenuBar jmb=new JMenuBar(); JMenu file,edit,view,suofang,gray,see,save,move,niuqu; public Imag

17、eProcessing(String title) super(title); file=new JMenu(文件 JMenuItem dakai=new JMenuItem(打开 dakai.addActionListener(new dakai_actionAdapter(this); file.add(dakai); file.addSeparator(); JMenuItem tuichu=new JMenuItem(退出 tuichu.addActionListener(new tuichu_actionAdapter(this); file.add(tuichu); jmb.add

18、(file); suofang=new JMenu(缩放 JMenuItem suoxiao=new JMenuItem(缩小 suoxiao.addActionListener(new testImage_suoxiao_actionAdapter(this); this.getContentPane().setLayout(borderLayout1); suofang.add(suoxiao); suofang.addSeparator(); JMenuItem fangda=new JMenuItem(放大 fangda.addActionListener(new testImage_

19、fangda_actionAdapter(this); suofang.add(fangda); jmb.add(suofang); edit=new JMenu(旋转 JMenuItem xuanzhuan90=new JMenuItem(旋转90度 xuanzhuan90.addActionListener(new xuanzhuan90_actionAdapter(this); edit.add(xuanzhuan90); edit.addSeparator(); JMenuItem xuanzhuan180=new JMenuItem(旋转180度 xuanzhuan180.addAc

20、tionListener(new xuanzhuan180_actionAdapter(this); edit.add(xuanzhuan180); JMenuItem xuanzhuan270=new JMenuItem(旋转270度 xuanzhuan270.addActionListener(new xuanzhuan270_actionAdapter(this); edit.add(xuanzhuan270); jmb.add(edit); gray=new JMenu(图像灰度处理 JMenuItem huidu=new JMenuItem(灰度变换 huidu.addActionL

21、istener(new huidu_actionAdapter(this); gray.add(huidu); gray.addSeparator(); JMenuItem junhenghua=new JMenuItem(直方图均衡化 junhenghua.addActionListener(new junhenghua_actionAdapter(this); gray.add(junhenghua); jmb.add(gray); /zyf/ see=new JMenu(变形 JMenuItem lashen=new JMenuItem(拉伸 lashen.addActionListen

22、er(new testImage_lashen_actionAdapter(this); see.add(lashen); see.addSeparator(); JMenuItem zhankuan=new JMenuItem(展宽 zhankuan.addActionListener(new testImage_zhankuan_actionAdapter(this); see.add(zhankuan); jmb.add(see); niuqu=new JMenu(扭曲 JMenuItem niuqu1=new JMenuItem( niuqu1.addActionListener(ne

23、w testImage_niuqu1_actionAdapter(this); niuqu.add(niuqu1); niuqu.addSeparator(); jmb.add(niuqu); save=new JMenu(保存 JMenuItem saveas=new JMenuItem(另存为 saveas.addActionListener(new saveas_actionAdapter(this); save.add(saveas); save.addSeparator(); jmb.add(save); move=new JMenu(移动 JMenuItem lmove=new J

24、MenuItem(向左移动 lmove.addActionListener(new testImage_lmove_actionAdapter(this); move.add(lmove); move.addSeparator(); JMenuItem rmove=new JMenuItem(向右移动 rmove.addActionListener(new saveas_actionAdapter(this); move.add(rmove); jmb.add(move); /zyf/ view=new JMenu(关于 JMenuItem banben=new JMenuItem(版本说明

25、banben.addActionListener(new banben_actionAdapter(this); view.add(banben); jmb.add(view); /zyf this.setSize(800,600); this.setJMenuBar(jmb); jLabel1=new JLabel(,JLabel.CENTER); JScrollPane pane = new JScrollPane(jLabel1); this.add(pane,borderLayout1.CENTER); this.setVisible(true); public static void

26、 main(String args) ImageProcessing testImage1=new ImageProcessing(基于J2SE的数字图像处理软件 testImage1.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );/通过文件选择对话框打开图片并显示 void dakai_actionPerformed(ActionEvent e) JFileChooser chooser =new JFileChooser(); if(JFileChooser.APPROVE_OPTION=chooser.showOpenDialog(this) S

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1