Java 图形化界面的实现

Java 图形化界面的实现

1.图形化界面实现所需的条件

      图形化界面的窗体,图形化界面的面板

2.界面的窗体

   2.1 什么是图形化界面的窗体

         如图,黑色的外边框就类似于图形化界面的窗体,要实现图形化界面,窗体是不可少的,或许有人会问只要外边框就可以了吗?当然是不可以的,还需要面板,要不然只有了外边框,里面啥也没有,那图形化界面还能称之为图形化界面.

   2.1 如何在Java 程序中实现图形化界面的窗体

         我们都知道Java 的有一个特点就是万物皆可调用

         2.1.1 Java中的窗体类

                  在Java所有类中,有一个类可以实现图形化界面的窗体,继承都有所了解吧,子类继承父类,继承父类声明的所有公共方法和属性

                  JFrame类是Java中的窗体类,我们现在声明一个类,去继承JFrame.

         2.1.2 自定义窗体类的步骤

                  1.写一个类继承于JFrame

                  2.写一个构造方法,初始化窗体的属性

         2.1.3 实现自定义窗体类

                    例如:

import javax.swing.JFrame;
//写一个类继承于 JFrame 
public class Frame extends JFrame{
    //构造方法
    public Frame(){
    //设置窗体的标题  来源于JFrame setTitle(标题);
        setTitle("图形化界面");
    //设置窗体的大小    setSize(宽度,高度);
        setSize(512,726);
    //设置窗体的位置 设置位置居中显示  setLocationRelativeTo(null);
        setLocationRelativeTo(null);
    //如果不想改变窗口的大小 setResizable(false);
        setResizable(false);
    //窗口关闭后所打开的程序并没有关闭,会大大影响运行内存,所以我们可以每次关闭的时候关闭程序
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //运行
        public static void main(String args[]){
            //创建Frame的对象
            Frame frame = new Frame();
            //显示窗口    true 是显示窗口,false 是隐藏窗口
            frame.setVisible(true);
        }
    }
}

 结果

3.图形化界面的面板

   3.1 什么是图像化界面的面板

          

图形化界面的面板就是黑色外边框以内的红色的部分,要实现图像化界面,面板也是不可或缺的一部分.和窗体一样重要,缺一不可!

    3.2 Java 中的面板类

          在Java所有类中,有一个类可以实现图形化界面的面板,继承都有所了解吧,子类继承父类,继承父类声明的所有公共方法和属性

           JPanel类是Java中的窗体类,我们现在声明一个类,去继承JPanel.

    3.3 自定义面板的步骤

          1.创建一个类继承 JPanel 

          2.创建一个构造方法,初始化(确定)面板的属性

    3.4实现自定义面板类

    添加背景颜色

import java.awt.Color;
import javax.swing.JPanel;
//创建一个类去继承Jpanel
public class Panel extends JPanel{
    //构造方法
    public Panel{
        //设置背景的颜色
        setBackground(Color.pink);
    }
}

   添加背景图片    添加背景图片需要一个 APP的类 

import java.awt.image.BufferedImage;
public class App{
    /**
       BufferedImage  Java 中用来表示图片类
       @param path 图片的路径
    */
    public static BufferedImage getImage(String path){
    // Java 中的IO流,输送数据的管道
    // 输入输出流
    // App.class  ,找到App类的路径(用到了反射的知识)
    // getResource()  获取资源
    try{
        BufferedImage img = ImageIO.read(App.class.getResource(path));
        //如果找到图片,就将图片返回
        return img;
    }catch(IOException e){
        // catch 如果找不到图片,就会捕获找不到图片的原因
        e.printStackTrace();
    }
        return null;
    }
}

添加背景图片

import java.awt.Color;
import javax.swing.JPanel;
//创建一个类去继承Jpanel
public class Panel extends JPanel{
    //1.定义背景图
    BufferedImage bg;
    //构造方法
    public Panel{
        //设置背景的颜色
        setBackground(Color.pink);
        //初始化图片
        bg = App.getImage(图片在哪个路径 如:"/image/1.png");
        //重写Paint 方法
        @override
        public void paint(Graphics g){
        super.paint(g);
        //调用 方法 g.drawImage(),确定图片的坐标, 如 g.drawImage(图片, 图片的横坐标,图片的纵坐标,图片的宽,图片的高,null);
        g.drawImage(bg,0,0,512,726,null);
        }
    }
}

  面板要实现,将他加到窗体中

import javax.swing.JFrame;
//写一个类继承于 JFrame 
public class Frame extends JFrame{
    //构造方法
    public Frame(){
    //设置窗体的标题  来源于JFrame setTitle(标题);
        setTitle("图形化界面");
    //设置窗体的大小    setSize(宽度,高度);
        setSize(512,726);
    //设置窗体的位置 设置位置居中显示  setLocationRelativeTo(null);
        setLocationRelativeTo(null);
    //如果不想改变窗口的大小 setResizable(false);
        setResizable(false);
    //窗口关闭后所打开的程序并没有关闭,会大大影响运行内存,所以我们可以每次关闭的时候关闭程序
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //运行
        public static void main(String args[]){
            //创建Frame的对象
            Frame frame = new Frame();
            //创建Panel 对象
            Panel panel = new Panel();
            //显示窗口    true 是显示窗口,false 是隐藏窗口
            frame.setVisible(true);
            //将面板添加到JPrame
            frame.add(panel);
        }
    }
}

注:窗体和面板是一起的是不可分的

结果

面板的的优化下次在详细戏说!

猜你喜欢

转载自blog.csdn.net/weixin_52011642/article/details/109599958