如果只是单纯的用打开文件对话框打开一个图片文件,应该没问题,如果要靠JAVA来显示,恐怕不行.

解决方案 »

  1.   

    可以的,可以用JFileChooser来打开任何图片文件,并且把这些图片显示在能够容纳图片的容器中,比如:JTextPane时可以显示出来啦
      

  2.   

    下面是一个例子,你Copy过去运行,它可以选择图片显示,并且放大和缩小。import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;public class testImage extends JFrame {
      JButton shrink = new JButton();
      JButton expand = new JButton();
      JLabel jLabel1 = new JLabel();
      JPanel jp1=new JPanel();
      ImageIcon ic;
      BorderLayout borderLayout1 = new BorderLayout();
      JButton jBrowse = new JButton();
      String filepath="";  public testImage() {
        try {
          jbInit();
          setSize(400,300);
          setVisible(true);
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        testImage testImage1 = new testImage();
        testImage1.addWindowListener(new WindowAdapter()
                       {
                            public void windowClosing(WindowEvent e)
                            {
                                  System.exit(0);
                            }
    });  }
      private void jbInit() throws Exception {
        shrink.setText("Shrink");
        shrink.addActionListener(new testImage_shrink_actionAdapter(this));
        this.getContentPane().setLayout(borderLayout1);
        expand.setText("Expand");
        expand.addActionListener(new testImage_expand_actionAdapter(this));
        jLabel1.setText("");
        jBrowse.setText("选择图片");
        jBrowse.addActionListener(new testImage_jBrowse_actionAdapter(this));
        jp1.add(expand);
        jp1.add(shrink);
        jp1.add(jBrowse, null);
        this.getContentPane().add(jp1,BorderLayout.SOUTH);    String filename="c:\\172.gif";
        ic=new ImageIcon(filename) ;
        int height=ic.getIconHeight();//719
        int width=ic.getIconWidth();//598
        Image ia=ic.getImage();
        Image ib=ia.getScaledInstance(350,260,10);
        ImageIcon ica=new ImageIcon(ib);
        jLabel1.setSize(width,height);
        jLabel1.setIcon(ica);
         this.getContentPane().add(jLabel1, BorderLayout.NORTH);  }  void shrink_actionPerformed(ActionEvent e) {
        Image ia=ic.getImage();
        Image ib=ia.getScaledInstance(200,100,10);
        ImageIcon ica=new ImageIcon(ib);
        jLabel1.setIcon(ica);
        repaint();
      }  void expand_actionPerformed(ActionEvent e) {
        Image ia=ic.getImage();
        Image ib=ia.getScaledInstance(400,300,10);
        ImageIcon ica=new ImageIcon(ib);
        jLabel1.setIcon(ica);
        repaint();
      }  void jBrowse_actionPerformed(ActionEvent e) {
        JFileChooser chooser = new JFileChooser();
        if(JFileChooser.APPROVE_OPTION==chooser.showOpenDialog(this))
        {
          String strSelectedPath=chooser.getSelectedFile().getPath();
          filepath=strSelectedPath;
          ic=new ImageIcon(filepath) ;
          int height=ic.getIconHeight();//719
          int width=ic.getIconWidth();//598
          jLabel1.setSize(width,height);
          jLabel1.setIcon(ic);
        }  }}class testImage_shrink_actionAdapter implements java.awt.event.ActionListener {
      testImage adaptee;  testImage_shrink_actionAdapter(testImage adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.shrink_actionPerformed(e);
      }
    }class testImage_expand_actionAdapter implements java.awt.event.ActionListener {
      testImage adaptee;  testImage_expand_actionAdapter(testImage adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.expand_actionPerformed(e);
      }
    }class testImage_jBrowse_actionAdapter implements java.awt.event.ActionListener {
      testImage adaptee;  testImage_jBrowse_actionAdapter(testImage adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jBrowse_actionPerformed(e);
      }
    }
      

  3.   

    如果这个图像是动态调用,而不是静态的在初始化过程中就配置好的。就有点麻烦了,因为applet的太多安全性的限制。你必须把图像进行序列化从服务器那端读过来,比较麻烦!
      

  4.   

    感谢CoolAbu等的帮助,小弟在此谢了
      

  5.   

    感谢CoolAbu等的帮助,小弟在此谢了