1.图片显示
利用 drawImage(image i,int x,int y,ImageObserver observer);//分别为图像对象,位置和图片所通知的观测者。
实例如下:
package test;
import java.net.*;
import javax.swing.*;
import java.awt.*;
public class test1 extends JFrame{
Image timg;
test1(){
URL url=test1.class.getResource("timg.jpg");
timg=Toolkit.getDefaultToolkit().getImage(url);
this.setTitle("测试");
this.setSize(800,600);
add(new mypanel());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new test1().setVisible(true);
}
class mypanel extends JPanel{
public void paint(Graphics g) {
super.paint(g);
Graphics2D g1=(Graphics2D)g;
g1.drawImage(timg, 0, 0, this);
}
}
}
2.图片的放大与缩小
需要利用到drawImage的一个重载方法:
drawImage(image i,int x,int y,int width,int height,ImageObserver observer);
利用滑块组件的该变量,即getValue()方法,确定新图片的大小,然后通过repaint()方法重新绘制画板内容即可完成。
package test;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
public class test1 extends JFrame{
Image timg;
JSlider jSlider;
mypanel canvas;
int imagewidth=100,imageheight=100;
test1(){
URL url=test1.class.getResource("timg.jpg");
timg=Toolkit.getDefaultToolkit().getImage(url);
canvas=new mypanel();
this.setTitle("测试");
this.setSize(1200,800);
this.setContentPane(getContentPane());
this.setLayout(new BorderLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jSlider=getJSlider();
add(jSlider,BorderLayout.SOUTH)