之前学习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();
- }
-
- }
结构:
运行效果图: