国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java圖像瀏覽器

2019-11-18 14:37:41
字體:
來源:轉載
供稿:網友

  //顯示對象為jpg,gif canvas中畫圖使用double buffering,使用scroll bar顯示,顯示區域固定了,可以擴展成按照canvas的大小來顯示的模式,因為canvas放在center位置。 import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; class Frameext extends Frame { } public class Images extends Frame implements ActionListener, WindowListener ,WindowStateListener { //Frameext fr = new Frameext(); Label Label1 = new Label(" ",Label.LEFT); //will show the file name Button Button1 = new Button("open file"); int XPos,ypos; int imageHeight; int w,h; Image offimg, bg; Graphics offg; boolean first=true; //extends Canvas. This code will use its paint method. public MyCanvas Canvas1 = new MyCanvas(); static Scrollbar horizontal, vertical; //scrollbar used FileDialog fd = new FileDialog(this,"Open", FileDialog.LOAD); Image Image1; public void initialize() { //System.out.PRintln(" dddddd "+this.MAXIMIZED_BOTH); //this.setLocation(0, 0); //this.setSize(this.getToolkit().getScreenSize()); this.setSize(600,600); this.setLocation(30,30); this.setBackground(Color.lightGray); Canvas1.setBackground(Color.white); Canvas1.setSize(580,580); //ColorChooserDialog colorDialog = new ColorChooserDialog(this, "@fff", this); this.add ("North", horizontal = new Scrollbar (Scrollbar.HORIZONTAL)); this.add ("East", vertical = new Scrollbar (Scrollbar.VERTICAL)); Panel pa=new Panel(); pa.setBackground(Color.white); Label1.setBackground(Color.lightGray); Label1.setAlignment(Label.LEFT); pa.add(Label1); pa.add(Button1); //add label and button on panel this.add("South",pa); //add panel at south this.add("Center",Canvas1); this.addWindowListener(this); this.addWindowStateListener (this); Button1.addActionListener(this); try { System.out.println ("getsize" + Canvas1.getSize () + "getwidth" + Canvas1.getWidth () + "getheight " + Canvas1.getHeight ()); } catch (Exception e) {System.out.println(e.toString()); } this.pack(); this.show(); } void imageload () { fd.setFile("*.jpg;*.gif"); //file speicific fd.show(); if(fd.getFile() == null) { Label1.setText("You have not chosen any image files yet"); } else { String d = (fd.getDirectory() + fd.getFile()); Image1 = Toolkit.getDefaultToolkit().getImage(d); if(Image1==null) {System.out.println("image is null of this file:"+ d); return; } Label1.setText(d); System.out.println("image loaded "+d); //It is important to use Canvas1 as the ImageObserver. MediaTracker mt = new MediaTracker(Canvas1); //here should be noticed like the author say mt.addImage(Image1, 0); try { mt.waitForAll(); } catch (InterruptedException e) { System.out.println(e.toString()); } w = Image1.getWidth (this); h = Image1.getHeight (this); //set w and h the image's height and width System.out.println("image width and height is"+w+" "+h); if (offimg != null && (offimg.getHeight (this) < h offimg.getWidth (this) < w)) { //shall we recreate the offimg for double buffering if the image is larger System.out.println ("offimage w and h " + offimg.getHeight (this) + " " + offimg.getWidth (this) + " w " + w + " h " + h); offimg = createImage (w, h); offg = offimg.getGraphics (); } vertical.setMaximum(h-390); //here important set scroll bar 's maximum //imagesize minus (showsize minus insects size first) , //you can determ the insects by program or simple set the maximum to //a certain number,and then you scroll it down and trace when it reach //the boundary,the value does not agree with the maximum number you set //and the difference may be the insects size you shall minus first // vertical.setVisibleAmount((h-290)/10); //if we try to set the visibleamount to a variable ,the scroll by will be uncertain and //hard to contral horizontal.setMaximum(w-440); // horizontal.setVisibleAmount((w-390)/10); Canvas1.repaint(); //image loaded so repaint the canvas // Canvas1.paint(); } } public boolean handleEvent (Event e) { // System.out.println("catched "+e);//we can see clearly what event happen if we don't comment this sentence if (e.id == Event.WINDOW_DESTROY) { System.exit(0); } else if (e.target instanceof Scrollbar) { System.out.println(" scoll of handleevent " ); if (e.target == horizontal) { xpos = ((Integer)e.arg).intValue(); //trace the scroll value for image show later } else if (e.target == vertical) { ypos = ((Integer)e.arg).intValue(); } System.out.println(" "+xpos+""+ypos); //System.out.println(" checking hereeeeeeeeeeeeeee" ); Canvas1.repaint(); } return super.handleEvent(e); } public void windowStateChanged (WindowEvent e) { System.out.println ("window state changed"); Canvas1.repaint (); } public void windowClosing(WindowEvent e) { // Use this.hide(); for subsequent forms in multi form applications System.exit(0); } public void windowActivated(WindowEvent e) {System.out.println ("window activated");Canvas1.repaint();} public void windowClosed(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowOpened(WindowEvent e) {} public void actionPerformed(ActionEvent event) { System.out.println("catched2 "+event); Button b = (Button)event.getSource(); if(b == Button1) { imageload(); } } public static void main(String args[]) { Images a = new Images(); a.initialize(); } /* public void update(Graphics g) { Canvas1.update(g); } public void paint(Graphics g) { Canvas1.paint(g); } */ //A simple inner class to show the basics. class MyCanvas extends Canvas { public void update(Graphics g) { System.out.println(" update" ); if (offg != null&&Image1!=null) { offg.clearRect(50,50, 500,450); offg.drawImage(Image1,50,50, 500,450, xpos, ypos,450+xpos,400+ypos ,this); g.drawImage (offimg, 50, 50, this); System.out.println ("w and h is" + w + " " + h + " and count update is" + " offg " + offg); } } public void paint(Graphics g) { if (first) { offimg = createImage (getWidth (), getHeight ()); offg = offimg.getGraphics (); System.out.println ("w and h is" + w + " " + h + " and count update is" + " offg " + offg); first= false; } if (offg != null&&Image1!=null) //if delete this when the window state change,the image will not show { //you must scroll the bar by hand then it will show we show take care what the function of paint when repaint offg.clearRect(50,50, 500,450); offg.drawImage(Image1,50,50, 500,450, xpos, ypos,450+xpos,400+ypos ,this); g.drawImage (offimg, 50, 50, this); System.out.println ("w and h is" + w + " " + h + " and count update is" + " offg " + offg); } System.out.println ("this is paint"); } }//End of inner class. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉峪关市| 遂宁市| 内乡县| 蓬安县| 隆林| 邓州市| 凤城市| 昌黎县| 美姑县| 眉山市| 普安县| 沙坪坝区| 石家庄市| 孟州市| 双桥区| 山东省| 高唐县| 鹿泉市| 香河县| 仪陇县| 乌海市| 渝中区| 兴化市| 文山县| 通河县| 确山县| 隆林| 综艺| 敖汉旗| 达尔| 青海省| 南乐县| 延津县| 繁峙县| 西畴县| 云霄县| 雷州市| 隆德县| 任丘市| 安吉县| 上高县|