user1209555
user1209555

Reputation: 47

how to make image resizeable

i try to make imageviewer, the code is below

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);
    }

}

but when i open image from camera, it always showing over the frame size i dont know how to make the image follow my frame size ?

Upvotes: 0

Views: 307

Answers (2)

mKorbel
mKorbel

Reputation: 109815

depends of reall size in pixels

1) put Image / BufferedImage as Icon/ImageIcon to the JLabel, then image will be resiziable up to real size in pixels

2) resize Image by usage of Image#getScaledInstance(int width, int height, int hints)

Upvotes: 1

Jose De Gouveia
Jose De Gouveia

Reputation: 1032

in order to place your image with the Full Size, you can try to make your own JPanel, override the paintComponent method, and inside this method use g.DrawImage ,

other solution and maybe easier is set the JPanel dimesion with the same dimesion of you Image and Add this JPanel to a JScrollPane , in this way is going to show a scrollbars to navigate

Upvotes: 1

Related Questions