java - 如何使图像大小可调

标签 java image resizable

我尝试制作imageviewer,代码如下

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 ,

其他解决方案,也许更简单的方法是将 JPanel 尺寸设置为与图像相同的尺寸,并将此 JPanel 添加到 JScrollPane ,这样将显示滚动条以进行导航

关于java - 如何使图像大小可调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287829/

相关文章:

jquery可调整大小的句柄在所有方面都没有显示

java - 修改 Java SWT 浏览器用户代理

java - DataOutputStream.write(byte b[], int off, int len) 不抛出异常

java - 无法在 VisualVM 的堆转储中访问 StringBuilder 的值

java - 在不损失质量的情况下读取/写入 JPG 图像的最快方法?

jquery - 编辑在另一个可调整大小的 div 中放置一个小 div,而不影响容器的内容

java - 在 Openshift 中将 JSP 与 MySql 数据库连接

ios - 按下图像按钮时添加声音

image - JOGL:一些 GL 常量无法解析

javascript - 禁用自动创建的下拉菜单js的链接