All pastes #805567 Raw Edit

Studienarbeit

public java v1 · immutable
·published 2007-12-04 14:07 UTC
rendered paste body
package studienarbeit;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 = new JPanel();    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.fillRect(0, 0, width, height);                                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);            }    }