GUI(图形用户接口)Swing顶级容器

Swing提供了三个主要的顶级容器类:JFrame, JDialog和JApplet。接下来进行对JFrame和JDialog的学习。

1. JFrame

package cn.edu.sdut.acm;


import javax.swing.*;
import java.awt.*;

public class Main{
    public static void main(String[] args){
        JFrame f = new JFrame("窗体标题"); // 创建窗体对象
        f.setVisible(true); // 设置窗体可见
        /*
           窗体关闭规则:
           EXIT_ON_CLOSE 隐藏窗体并停止程序
           DO_NOTHING_ON_CLOSE 无任何操作
           HIDE_ON_CLOSE 隐藏窗口但不停止程序
           DISPOSE_ON_CLOSE 释放窗体资源
         */
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//        f.setSize(300, 200); // 设置宽高,单位为像素
//        f.setLocation(200, 200); // 设置窗体出现的默认坐标,单位为像素
        f.setBounds(200, 200, 300, 200); // 设置窗体坐标和大小

        Container c = f.getContentPane(); // 获取窗体容器
        c.setBackground(Color.WHITE); // 设置窗体颜色
        JLabel l = new JLabel("这是一个标签");
        c.add(l); // 添加组件
//        c.remove(l); // 删除组件
        c.validate( ); // 验证容器中的组件,使容器可以再次布置组件(刷新)
//        f.setContentPane(c); // 窗体重新载入容器(刷新)

        f.setResizable(false); // 设置窗体是否可以改变大小

        System.out.println("x="+f.getX()+" y="+f.getY()); // 获取窗体的位置坐标
    }
}

2. JDialog

package cn.edu.sdut.acm;


import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;

public class Main extends JDialog {
    public Main(JFrame jFrame){
        /*
        * 第一个参数,父窗体对象
        * 第二个参数,对话框标题
        * 第三个参数,是否阻塞父窗体
        */
        super(jFrame, "对话框标题",true);
        Container c = getContentPane(); // 获取窗体容器
        c.add(new JLabel("这是一个标签"));
        setBounds(100, 100, 100, 100);
    }
    public static void main(String[] args){
        JFrame f = new JFrame("父窗体");
        f.setBounds(50, 50, 300, 300);
        Container c = f.getContentPane();
        JButton btn = new JButton("弹出对话框");
        c.setLayout(new FlowLayout()); // 设置布局,使用流布局
        c.add(btn);
        f.setVisible(true);
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);

        btn.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Main m = new Main(f);
                m.setVisible(true); // 设置窗体可见

            }
        }); // 添加动作监听
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值