| |
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); } }
|
|