All pastes #799739 Raw Edit

jan

public java v1 · immutable
#799739 ·published 2007-11-27 21:10 UTC
rendered paste body
import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class ScaleImageTest1 extends JFrame {        private double scaleFactor = 1.0;        private BufferedImage sourceImage;    JPanel panel;    JSlider slider;    public Graphics g;        public ScaleImageTest1() {        super("ScaleImageTest");        setDefaultCloseOperation(DISPOSE_ON_CLOSE);               try {            sourceImage = ImageIO.read(new File("duke_skateboard.jpg"));        } catch (IOException e) {            e.printStackTrace();        }                createPanel();        createSlider();        addComponents();    }            public void  createPanel(){        panel = new JPanel(){            public void paintComponent(Graphics g) {                                Dimension panelSize = getSize();                int width = panelSize.width;                int height = panelSize.height;                                //g.setColor(Color.WHITE);                g.fillRect(0, 0, width, height);                //g.setColor(Color.BLACK);                                int imageWidth = (int) (sourceImage.getWidth() * scaleFactor);                int imageHeight = (int) (sourceImage.getHeight() * scaleFactor);                int imageX = width / 2 - imageWidth / 2;                int imageY = height / 2 - imageHeight / 2;                                Image image = sourceImage.getScaledInstance(                        imageWidth, imageHeight, Image.SCALE_SMOOTH);                                g.drawImage(image, imageX, imageY, null);            }      };   }        public void createSlider(){        slider = new JSlider(0, 200);        slider.addChangeListener(new ChangeListener() {            public void stateChanged(ChangeEvent e) {                int value = slider.getValue();                                if (value > 0) {                    scaleFactor = (double) value / 100.0;                    repaint();                }            }        });    }        public void addComponents(){        getContentPane().add(panel, BorderLayout.CENTER);        getContentPane().add(slider, BorderLayout.SOUTH);    }        public static void main(String[] args) {                final JFrame frame = new ScaleImageTest1();                final Dimension frameSize = new Dimension(600, 400);                frame.setSize(frameSize);                Toolkit.getDefaultToolkit().getScreenSize();                frame.setVisible(true);            }    }