Java Graphics_10

来源:互联网 发布:经常疲劳知乎 编辑:程序博客网 时间:2024/05/22 11:33
package com.han;import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Container;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.net.URL;import javax.swing.JFrame;import javax.swing.JSlider;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;@SuppressWarnings("serial")public class Graphics_10 extends JFrame {JSlider slider;Canvas canvas;public Graphics_10() {// TODO Auto-generated constructor stubContainer container = getContentPane();slider = new JSlider();canvas = new MyCanvas();container.add(canvas, BorderLayout.CENTER);container.add(slider, BorderLayout.SOUTH);/* configure JSlider */slider.setMinimum(1);slider.setMaximum(1000);slider.setValue(100);slider.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {// TODO Auto-generated method stubcanvas.repaint(); // the variable referred in the inner-cached class must be "final"}});}/** * Canvas 会闪烁,当其上的图像缩放时。 * @author HAN * */class MyCanvas extends Canvas {@Overridepublic void paint(Graphics g) {int currentValue = slider.getValue();URL resource = Graphics_10.class.getResource("/images/Lighthouse.jpg");Image img = Toolkit.getDefaultToolkit().getImage(resource);int newWidth = img.getWidth(this) * currentValue / 100;int newHeight = img.getHeight(this) * currentValue / 100;g.drawImage(img, 0, 0, newWidth, newHeight, canvas);}}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubGraphics_10 frame = new Graphics_10();frame.setTitle("图像缩放");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Dimension d = Toolkit.getDefaultToolkit().getScreenSize();frame.setBounds(0, 0, d.width, d.height);frame.setVisible(true);}}

原创粉丝点击