图1
图2
图3
图4
图5
图6
怎么样,java swing可视化编程。适合对java swing有所了解的java爱好者。如果有兴趣就继续往下看,别见笑!
包含的内容:
1. 2. 3. 4. 5.
整个窗口为一个JFrame。 最上方的JMenuBar。
中间最大的那块区域——mainPanel。 右侧边栏——rightPanel。 底部的一栏——basePanel。
主要功能:
JMenuBar里设置了两个菜单项——File和Help。File里有打开文件、关闭文件和退出菜单项。单击Open...或者按快捷键alt+O,弹出JFileChooser文件选择对话框,选择图片文件(这里支持jpg、jpeg、gif、tif、tiff和png五种格式)后,图片将在mainPanel里显示。同一文件夹下的其他图片文件显示在rightPanel,如果图片很多可以出现滑动条。basePanel里有两个按钮和一个显示当前图片序号和图片总数的标签;按钮可以往上往下翻图片,主面板、右侧边栏和标签都会动态更新。如果到了最后一张,“下一个”按钮被禁用;第一张时,“上一个”被禁用。同理在右侧边栏里选图片其它地方也都可以动态更新。 点File里的Close时,会清空mainPanel,rightPanel和标签中显示的内容,禁用两个按钮,效果(如图1)就像是还没有打开文件一样。 点退出时关闭Frame,结束程序。
下面正式开始介绍程序。 注:这里所讲的和提供的源码稍有差异,有兴趣的可以结合文中给出的代码去编写自己的类。
程序分为四部分,分别为三个面板的建立。最后组合在一起,放在一个JFrame里,加入菜单栏,各种监听器。
Part I 写主面板类——MainPanel
可以从JPanel继承。MainPanel相对与JPanel,多了一个图像显示的功能,所以里面一定要有获取图片的方法,还必须重载paintComponent方法。
关于paintComponent这我想多说一点。可视化组件要完成显示的工作一般都要调用paint方法,而paint方法又把绘图任务交给了三个方法:paintComponent,paintBorder, 和paintChildren。我们只需把需要个性定制的实现代码放在paintComponent方法里,在添加你的代码之前记得一定要调用super.paintComponent。在写自己的实现方法前一定要记住给自己留一条退路。什么退路?比如说我们前面提到的关闭文件方法,要实现一定的清理工作,等价于不在原组件里画图。这里我们可以这样实现: @override
public void paintComponent(Graphics g)
{ super.paintComponent(g); /*Customize your paint plans here.*/ if(image!=null){ /*假设image就是需要显示的图片*/ /*your code to paint the image*/ } }
一般情况下,我们不能直接调用paint方法,当需要更新显示内容时直接调用repaint。repaint先完成一定的清理工作然后会调用paint,paint又调用paintComponent,就可以显示出你画的东西了。
要让MainPanel类获取图片,可以给它传一个ImageIcon,或图片文件或其它任何可以得到图片的东西。我们从JFileChooser中得到的是图片文件,直接把图片文件或者经转化为ImageIcon后作为参数传递给MainPanel。具体如下: /*MainPanel.java*/
/*import every class needed here*/
public class MainPanel extends JPanel { protected File imgFile; protected ImageIcon img; public PaintImage() { /*add your code here*/ } public void setImageFile(File newImgFile) { imgFile = newImgFile; ImageIcon newImg = new ImageIcon(imgFile.getPath()); setImage(newImg); } public void setImage(ImageIcon newImg) { img = newImg; repaint(); } public void paintComponent(Graphics g) { super.paintComponent(g);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库javaswing编程(一个简单图片查看器)在线全文阅读。
相关推荐: