之前学习C和C++时总是和数据打交道,也许是学的浅薄的关系,当时觉得显示界面和图像是如此的神秘。
如今学习了一段时间的java,发现其实界面什么的也不是那么的难懂。
下面写一个简单的例子,让我们的java为我们展示张图片来看看吧。
面板源码:
package simple;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Panel;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
public class MyPanel extends Panel{
private final Image screenImage = new BufferedImage(800, 600, 2);
private final Graphics2D screenGraphic = (Graphics2D) screenImage
.getGraphics();
private Image backgroundImage;
public MyPanel() {
loadImage();
// 设定焦点在本窗体
setFocusable(true);
// 设定初始构造时面板大小,这里先采用图片的大小
setPreferredSize(new Dimension(800,600));
// 绘制背景
drawView();
}
/**
* 载入图像
*/
private void loadImage() {
//获得当前类对应的相对位置image文件夹下的背景图像
ImageIcon icon = new ImageIcon(getClass().getResource("../image/background.jpg"));
//将图像实例赋给backgroundImage
backgroundImage = icon.getImage();
}
private void drawView() {
screenGraphic.drawImage(backgroundImage, 0, 0, null);
}
public void paint(Graphics g) {
g.drawImage(screenImage, 0, 0, null);
}
}
窗体源码:
package simple;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyFrame extends Frame{
public MyFrame() {
// 默认的窗体名称
this.setTitle("显示一张图片");
// 获得面板的实例
MyPanel panel = new MyPanel();
this.add(panel);
this.addWindowListener(new WindowAdapter() {
//设置关闭
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 执行并构建窗体设定
this.pack();
this.setVisible(true);
}
}
主方法源码:
package simple;
import java.awt.Frame;
public class Main {
public static void main(String[] args) {
Frame frame=new MyFrame();
}
}
结构:
运行效果图: