2012-02-15 121 views
0

我尽量让图像浏览器,代码如下如何使图像调整大小

import javax.swing.*; 
import java.awt.event.*; 
import java.IO.*; 

public class javaImageViewer extends JFrame{ 
    public javaImageViewer(){ 

     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     this.setSize(200,100); 
     JButton openButton = new JButton("Open Images"); 
     getContentPane().add(openButton); 

     openButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e){ 
      JFileChooser chooser = new JFileChooser("."); 
      int status = chooser.showOpenDialog(javaImageViewer.this); 
      if(status == JFileChooser.APPROVE_OPTION){ 
       try{ 
        JFrame frame = new JFrame(); 
        JLabel label = new JLabel(new ImageIcon(chooser.getSelectedFile().toURL())); 
        frame.add(label); 
        frame.setSize(500,500); 
        frame.setVisible(true); 
       } 
       catch(Exception e2){ 
        System.out.println("Error"+e2); 
       } 
      } 

      } 

     }); 
    } 
    public static void main(String [] args){ 
     javaImageViewer tim = new javaImageViewer(); 
     tim.setVisible(true); 
    } 

} 

但是当我从相机打开图像,它总是显示在帧大小 我不知道如何使图像追随我的框架大小?

,以便将图像按实际尺寸,你可以尝试让自己的JPanel,覆盖paintComponent方法,而这个方法里面使用g.DrawImage

回答

1

其他的解决办法,也许更容易被设置JPanel的dimesion与你同dimesion图像和此JPanel添加到JScrollPane中,以这样的方式去展现一个滚动条来浏览