网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  一个浏览图片程序     
  文章作者:未知  文章来源:水木森林  
  查看:106次  录入:管理员--2007-11-17  
 
import javax.swing.*; 
import java.awt.graphics; 
import java.awt.*; 
import java.awt.event.*; 

public class imageviewer extends jframe{ 

image imagefirst;//初始图像 
imagepanel panel=new imagepanel();//用来显示图像的panel 

jmenubar jmb=new jmenubar(); 

jmenu file=new jmenu("file"); 
jmenu modify=new jmenu("modify"); 

jmenuitem open=new jmenuitem("open"); 
jmenuitem exit=new jmenuitem("exit"); 

buttongroup bg=new buttongroup(); 
jradiobuttonmenuitem rate1=new jradiobuttonmenuitem("to 50%");//这三个菜单项 
jradiobuttonmenuitem rate2=new jradiobuttonmenuitem("to 100%");//用来改变图像 
jradiobuttonmenuitem rate3=new jradiobuttonmenuitem("to 200%");//显示的大小 

jtoolbar toolbar=new jtoolbar();//只有一个button简单的toolbar 
jbutton button=new jbutton("a jtoolbar contain a jbutton"); 

imageviewer(){ 

this.getcontentpane().setlayout(null); 

this.setbounds(200,200,500,400); 
this.setresizable(false); 
this.settitle("imageviewer"); 

imagefirst=java.awt.toolkit.getdefaulttoolkit().getimage("images/opean.gif"); 
panel.setimage(imagefirst); 

jmb.add(file); 
jmb.add(modify); 

open.addactionlistener(new openaction()); 
file.add(open); 
file.add(exit); 

bg.add(rate1); bg.add(rate2); bg.add(rate3); 
modify.add(rate1); 
modify.add(rate2); rate2.setselected(true); 
modify.add(rate3); 

rate1.additemlistener(new itemlistener(){ 
public void itemstatechanged(itemevent e){ 
if(rate1.isselected()==true){ 
panel.setrate(0.5); 
system.out.println("rate1 been selected!"); 
panel.repaint(); 


}); 

rate2.additemlistener(new itemlistener(){ 
public void itemstatechanged(itemevent e){ 
if(rate2.isselected()==true){ 
panel.setrate(1); 
system.out.println("rate2 been selected!"); 
panel.repaint(); 


}); 

rate3.additemlistener(new itemlistener(){ 
public void itemstatechanged(itemevent e){ 
if(rate3.isselected()==true){ 
panel.setrate(2); 
system.out.println("rate3 been selected!"); 
panel.repaint(); 


}); 
exit.addactionlistener(new actionlistener(){ 
public void actionperformed(actionevent e){ 
system.exit(0); 
}}); 

this.setjmenubar(jmb); 

panel.setbounds(0,30,this.getwidth(),this.getheight()-60); 
this.getcontentpane().add(panel); 

button.addactionlistener(new actionlistener(){ 
public void actionperformed(actionevent e){ 
joptionpane.showmessagedialog(null,this); 

}); 
toolbar.add(button); 
toolbar.setlayout(new gridlayout()); 
toolbar.setbackground(color.blue); 
toolbar.setbounds(0,0,500,30); 
this.getcontentpane().add(toolbar); 
}//swingdemo1 

//主方法 
public static void main(string argv[]){ 

jframe.setdefaultlookandfeeldecorated(true); 
imageviewer app=new imageviewer(); 
app.setvisible(true); 

app.repaint(); 


//内部类 菜单项opean处理事件 
class openaction implements actionlistener{ 
public void actionperformed(actionevent e){ 

jfilechooser fc = new jfilechooser(); 
int returnval = fc.showdialog(new imageviewer(), "open file"); 
string file = fc.getselectedfile().getpath(); 
panel.setimage(file); 
panel.repaint(); 

system.out.println("open file action performed"); 





//外部类  panel用来显示image 
class imagepanel extends jpanel 

private image image; 
private double rate=1; 

dimension offdimension; 
image offimage; 
graphics offgraphics; 

imagepanel(){ 
this.setbackground(color.blue); 


public void update(graphics g){ 
if(image!=null){ 
g.drawimage(image,0,0, 
(int)(this.getwidth()*rate/2),(int)(this.getheight()*rate/2), 
this.getrootpane()); 

else 
{g.setcolor(color.red); 
g.fillrect(0,0,(int)(250*rate),(int)(200*rate)); 


public void paint(graphics g){ 
update(g); 


public void setimage(image image){ 
this.image=image; 


public void setrate(double rate){ 
this.rate=rate; 


public void setimage(string s){ 
this.image=java.awt.toolkit.getdefaulttoolkit().getimage(s); 

 
 
上一篇: 一个连接池的例子(来自jive)    下一篇: 一个文本上传bean的例子
  相关文档
工作流引擎 11-17
round 方法 11-16
在eclipse 3.1体验j2se 5.0新特性五(图) 11-17
创建struts1.2 + hibernate3.0 web工程 11-17
学java请不要做浮躁的人 11-17
用java类实现javamail发送邮件的例子 11-17
java模式设计之单例模式(四) 11-17
深入理解collections api 11-16
精典文萃:java编程中异常处理的优劣观 11-16
javascript实例教程(19) 使用hotmetal(7) 11-16
[webservices开发]xfire实战 11-17
with 语句 11-16
jsf和struts基于框架的错误控制与封装处理 11-17
java fun and games: java grab包的技术提示 11-17
漫谈java平台上的crm系统 11-17
netscape 修复java安全漏洞 11-17
由pojo生成hibernate映射文件的批处理程序 11-17
microsoft.net 的java实现 11-17
java核心代码例程之:servlet----simpleservlet.java 11-17
开发不再是苦差事 用eclipse简化开发 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息