как сделать изображение изменяемого размера - PullRequest
0 голосов
/ 15 февраля 2012

Я пытаюсь сделать 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);
    }

}

, но когда я открываю изображение с камеры, оно всегда показывает размер кадра, я не знаю, как заставить изображение соответствовать моему размеру кадра?

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

зависит от размера в пикселях

1) поместите Image / BufferedImage как Icon / ImageIcon в JLabel , тогда изображение будет изменяемого размера до реального размерав пикселях

2) изменить размер Изображение с помощью Image # getScaledInstance (int width, int height, int hints)

1 голос
/ 15 февраля 2012

чтобы разместить изображение в полном размере, вы можете попытаться создать свой собственный JPanel, переопределить метод paintComponent, и в этом методе использовать g.DrawImage,

другое решение и, возможно, проще установитьИзмерение JPanel с таким же измерением, как у вас Image и Добавьте этот JPanel к JScrollPane, таким образом, будет отображаться полоса прокрутки для навигации

...