JavaSE、可视化窗口JFrame类、画板JPenal类

JFrame类

JFrame在javax.swing包内
JFrame顶层容器(每个应用程序中至少一个)
不能直接防止空间,需要获得内容面板,在内容面板上再添加其他控件
创建时要设置大小、容器可见度

//最简单/最原始的创建窗口方式
JFrame frame = new JFrame("窗体标题");
//设置窗体大小
frame.setSize(x, y);
//设置窗体的可见性
frame.setVisible(true);
//设置窗体关闭时的默认选项
frame.setDefaultCloseOperation(JFrame.常量参数);
//设置窗体相对位置(null就是居中)
frame.setLocationRelativeTo(null);
import javax.swing.*;
import java.awt.*;
public class JFrameDemo {
    public static void main(String[] args) {
        // 给窗体提供一个名称
        JFrame frame=new JFrame("窗体标题");
        //设置是否展示窗体
        frame.setVisible(true);
        /*
        *窗体关闭规则
        * EXIT_ON_CLOSE:设置关闭窗体停止程序
        * DO_NOTHING_ON_CLOSE:没有任何操作
        * HIDE_ON_CLOSE:关闭窗体但是不停止程序
        * DISPOSE_ON_CLOSE:释放窗体资源
        * */
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置窗体的大小 单位是像素
        frame.setSize(300,200);
        // 设置窗体的坐标
        frame.setLocation(200,200);
        // 设置窗体坐标和大小
        frame.setBounds(200,200,300,200);
        // 获取窗体容器
        Container container = frame.getContentPane();
        // 设置窗体背景颜色
        container.setBackground(Color.white);
        // 创建标签
        JLabel label = new JLabel("这是一个窗体");
        // 将窗体添加到容器中
        container.add(label);
        // 将窗体从容器中删除
        /*container.remove(label);*/
        // 验证容器中的组件
        container.validate();
        // 让窗体重新的载入这个容器(与上一步具有相同的效果)
        /*frame.setContentPane(container);*/

    }
}
public static void main(String[] args){
        //创建类的对象
        JFrame win1 = new JFrame("飞机大战");
        //设置窗体大小
        win1.setSize(WIDTH,HEIGHT);
        //设置窗口置顶
        win1.setAlwaysOnTop(true);
        //设置窗体居中
        win1.setLocationRelativeTo(null);
        //设置默认关闭形式
        win1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      //设置窗口显示
        win1.setVisible(true);
    }

在这里插入图片描述

JPenal类

抽象类,需继承了使用。

JFrame用来做主页面框架也可以用来做顶级窗体,要想把控件放在该界面中,必须把控件放在JPanel中,然后再把JPanel放在JFrame中,JPanel作为一个容器使用。

JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel

package b_image;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
/*
    路径IO:
        new File("") - 工程下
        new File("getClassLoader") - 存在src下
        new File("getResourceAsStream()") - 文件和所在类同一个包下
 */

public class JPanelDemo extends JPanel{
    @Override
    public void paint(Graphics g) {
        //父类对象
        super.paint(g);
        //setBackground(Color.BLACK);
        //g.drawString("hello",200,300);

        //获取图片资源
        try {
            BufferedImage bg = ImageIO.read(
                    JPanelDemo.class.
                        getResourceAsStream
                              ("pic/background.png"));
            g.drawImage(bg,0,0,null);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        //创建类的对象
        JFrame win1 = new JFrame("飞机大战");
        //win.setTitle("");
        win1.setSize(400,600);
        //设置居中
        //设置置顶
        win1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //创建画板对象
        JPanelDemo panel = new JPanelDemo();
        win1.add(panel);
        //设置窗口显示1
        win1.setVisible(true);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值