当前位置:  技术问答>java相关

AWT中有什么控件可以列有显示小图片吗?比如:SWing中的JTable..

    来源: 互联网  发布时间:2015-02-19

    本文导语:  有没例子? | Have a simple Image browser [imagelist.txt] jht.gif|JAVA How-to jsht.gif|Javascript How-to pht.gif|PowerBuilder How-to   [application version] import java.awt.*; import java.awt.event.*; import java.net.*; import java.io....

有没例子?

|
Have a simple Image browser
[imagelist.txt]
jht.gif|JAVA How-to
jsht.gif|Javascript How-to
pht.gif|PowerBuilder How-to
 


[application version]
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class ImageBrowser {
  public static void main(String s[]) {
    AFrame f = new AFrame();
    }
 }
 
 class AFrame extends Frame implements ActionListener {
   List lbx;
   MyCanvas can;
   String url[] = new String[50];
   
   public AFrame() {
     setTitle("Image selection, double click to display");
     setLayout(new GridLayout(1,2));
     setSize(800,600);
     lbx = new List();
     can = new MyCanvas();
     add(lbx); add(can);
     initLbx();
     // action on listbox double click
     lbx.addActionListener(this);
     // to close the Frame
     addWindowListener
       (new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
           System.exit(0);
           }
         }
       );
     setVisible(true);  
     }
     
   public void actionPerformed (ActionEvent ae) {
     String theUrl = url[lbx.getSelectedIndex()];
     MediaTracker media = new MediaTracker(this);
     Image image = 
        Toolkit.getDefaultToolkit().getImage(theUrl);
     media.addImage(image, 0);
     try {
       media.waitForID(0);  
       can.setImage(image);
       }
     catch (Exception e) { e.printStacktrace();}
     }
   
   public void initLbx() {
     int i = 0;
     try {
       String aLine = "";
       BufferedReader in
         = new BufferedReader(new FileReader("imagelist.txt"));
       while(null != (aLine = in.readLine())) {
          java.util.StringTokenizer st = 
             new java.util.StringTokenizer(aLine, "|");
         url[i++] = st.nextToken();
         // lbx.addItem(st.nextToken());         
         lbx.add(st.nextToken());
         }
       }
     catch(Exception e) { e.printStackTrace();}
     }
  }

class MyCanvas extends Canvas {
  private Image image;
  public MyCanvas() {
    super();
    }

  public void setImage(Image i) {
    image = i;
    repaint();
    }

  public void paint(Graphics g) {
    if (image != null)
       g.drawImage(image, 0,0, this);
    }
}
 


NOTE : You can download this example here 
[applet version]
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class ImageBrowserApplet extends Applet {
  public void init() {  
    APanel p = new APanel(this);
    setLayout(new BorderLayout());
    add(p, "Center");
    }
 }
 
 class APanel extends Panel implements ActionListener {
   private List lbx;
   private MyCanvas can;
   private Applet parent = null;
   private String url[] = new String[50];
   
   public APanel(Applet a) {
     parent = a;
     setLayout(new GridLayout(1,2));
     lbx = new List();
     can = new MyCanvas();
     add(lbx); add(can);
     initLbx();
     // action on listbox double click
     lbx.addActionListener(this);
     setBackground(new Color(0).white);
     }
     
   public void actionPerformed (ActionEvent ae) {
     try {
       URL theUrl = 
         new URL(parent.getCodeBase(), url[lbx.getSelectedIndex()]);
       MediaTracker media = new MediaTracker(this);
       Image image = 
         Toolkit.getDefaultToolkit().getImage(theUrl);
       media.addImage(image, 0);
       media.waitForID(0);  
       can.setImage(image);
       }
     catch (Exception e) { e.printStackTrace();}
     }
   
   public void initLbx() {
     int i = 0;
     try {
       String aLine = "";
        URL source = 
          new URL(parent.getCodeBase(), "imagelist.txt");
       BufferedReader in
         = new BufferedReader
            (new InputStreamReader(source.openStream()));;
       while(null != (aLine = in.readLine())) {
          java.util.StringTokenizer st = 
             new java.util.StringTokenizer(aLine, "|");
         url[i++] = st.nextToken();
         // lbx.addItem(st.nextToken());         
         lbx.add(st.nextToken());
         }
       }
     catch(Exception e) { e.printStackTrace();}
     }
  }

class MyCanvas extends Canvas {
  private Image image;
  public MyCanvas() {
    super();
    }

  public void setImage(Image i) {
    image = i;
    repaint();
    }

  public void paint(Graphics g) {
    if (image != null)
       g.drawImage(image, 0,0, this);
    }
}
 


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问AWT中Frame可以嵌套吗?Dialog呢?Frame和Dialog呢?
  • awt里有哪个类可以显示gif或jpg图片?
  • java命名空间java.awt类component的类成员方法: processevent定义及介绍
  • swing是轻量级的容器,awt是重量级的,但swing继承自awt,极度疑惑中。。。。。
  • java命名空间java.awt类color的类成员方法: gettransparency定义及介绍
  • java.awt 和java.util都有List,想调用awt的List而出现Ambiguous class错误怎么办?
  • java命名空间java.awt类keyboardfocusmanager的类成员方法: enqueuekeyevents定义及介绍
  • 这是什么问题:java.awt.AWTError: Cannot load AWT toolkit:如何解决?
  • java命名空间javax.accessibility类accessiblerole的类成员方法: awt_component定义及介绍
  • 请教Swing 与AWT的关系?
  • java命名空间java.awt类container的类成员方法: processevent定义及介绍
  • 關於swing和awt的疑問
  • java命名空间java.awt类window的类成员方法: processevent定义及介绍
  • 是用AWT?还是用JFC?欢迎参与~~~~
  • java命名空间java.awt类textcomponent的类成员方法: processevent定义及介绍
  • 谁能概要的说说awt和swing啊?
  • java命名空间java.awt类eventqueue的类成员方法: isdispatchthread定义及介绍
  • AWT和SWING?
  • java命名空间java.awt类container的类成员方法: addcontainerlistener定义及介绍
  • #import java.awt.* 这个东东在哪里?
  • java命名空间java.awt类toolkit的类成员方法: getdesktopproperty定义及介绍
  • AWT中如何设置画笔??????
  • java命名空间java.awt类container的类成员方法: removecontainerlistener定义及介绍
  • 抽象窗口工具包 AWT


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3