Java Swing基础(顶层容器,中间层容器,原子组件)

2023-11-17

Swing基础

Swing顶层容器

Swing的3个顶层容器类

  • JFrame、JApplet、JDialog
  • 都是重量级组件,分别继承了AWT组件Frame、Applet和Dialog
  • 每个顶层容器都有一个内容面板,通常直接或间接的容纳别的可视组件。
  • 可以有选择的为顶层容器添加菜单,菜单被放置再顶层容器上,但是在内容面板外。

JFrame使用举例

package swing;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class FrameDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame frame = new JFrame("FrameDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel emptyLabel = new JLabel("Hello World!!!");
        emptyLabel.setPreferredSize(new Dimension(175,100));
        frame.getContentPane().add(emptyLabel,BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}

就直接定义一个顶层容器的实例就可以了

对话框使用:通过静态方法showxxxDialog,可以产生四种简单的对话框,它们的方法参数绝大多数都要提供父窗口组件ParentComponent,只有关闭这些简单的对话框后,才能返回其父窗口,也就是说,它们绝大多数是模态的

对话框使用举例

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class JOptionPaneDemo extends JFrame implements ActionListener{
    public JOptionPaneDemo()
    {
        super("简单对话框");
        Container c = getContentPane();
        JButton button = new JButton("退出");
        button.addActionListener(this);
        //添加事件监听器
        c.setLayout(new FlowLayout());
        c.add(button);
    }
    public void actionPerformed(ActionEvent e)
    {
        int select = JOptionPane.showConfirmDialog(this, "确定退出吗?",
                "确定",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);
        if(select == JOptionPane.OK_OPTION);
            System.exit(0);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame frame = new JOptionPaneDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200,100);
        frame.setVisible(true);
    }
}

中间层容器

中间层容器是为了容纳其他组件而存在的

中间层容器

  • 一般用途的

    • Jpanel
    • JScrollPane
  • 特殊用途

    • JInternalFrame
    • JRootPane(可以直接从顶层容器中获得)

在这里插入图片描述

只要了解了中间层容器的基本概念就可以了,关于各种容器的用法可以到https://docs.oracle.com/javase/tutorial/这里去看

原子组件

直接与用户交互的组件

这里查看

原子组件

直接与用户交互的组件

各种原子组件的用法可以到上面的网站去看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Swing基础(顶层容器,中间层容器,原子组件) 的相关文章

随机推荐

  • 正规表达式与有限自动机

    1 美图 2 概念 3 正规式和正规集 正规集可以用正规表达式 简称正规式 表示 正规表达式是表示正规集一种方法 一个字集合是正规集当且仅当它能用正规式表示 3 1 正规式和正规集的递归定义 4 确定有限自动机 DFA
  • 页面启动自动使用jquery实现自动加载方法的三种形式

    第一种 function a 声明一个方法 alert a方法 window nl ad function 自动调用上面那个方法 a 第二种 function b alert b方法 document ready function 在这里写
  • el-tree使用setCheckedKeys清空树节点不生效

    问题描述 在切换下拉选框的change事件中使用this refs tree setCheckedKeys 清空目标树已选择节点 但不生效 问题解决 清空 clearAllNodes function this nextTick funct
  • LaTeX Error: Missing \begin{document}

    解决方案 将除 tex之外的文件全部删掉 再重新运行一遍 就可以啦
  • 【opencv实践】人脸识别匹配——识别自己的脸

    本文由 星沉阁冰不语出品 转载请注明作者和出处 文章链接 http blog csdn net xingchenbingbuyu article details 51472330 在之前数据收集和预处理和模型训练两篇博客中 已经把人脸识别的
  • 字符函数和内存函数的模拟实现

    1 字符串函数 长度不受限的函数 1 1strlen函数 字符串已经 0 作为结束标志 strlen函数返回的是在字符串中 0 前面出现的字符个数 不包含 0 参数指向的字符串必须要以 0 结束 模拟实现 size t my strlen1
  • 斯坦福大学教授,极力推荐5本python入门书籍,入门最快基础最好

    为什么要选择python Python是一门更注重可读性和效率的语言 尤其是相较于 Java PHP 以及 C 这样的语言 它的这两个优势让其在开发者中大受欢迎 如果你正处于想学习python或者正在python入门阶段 推荐5套pytho
  • 简述关于ASP.NET MVC与.NET CORE 的区别

    简述关于ASP NET MVC与 NET CORE的区别 1 关于ASP NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字 我相信许多学ASP NET开发人员开始接触MVC应该也和我一样产生很多为什么 也会误认为认为MVC
  • K8S之使用yaml格式定义pod

    mysql pod yaml overView 1 web服务与db打包放在同一个pod中 本地通过localhost来访问 并附带存活性 可用性检测 2 补充重启策略 镜像拉去策略 3 对容器资源进行限制 apiVersion apps
  • VSCode 插件Code Runner 中文提示乱码

    所属专栏 程序错误解决方法 建议收藏 作 者 我是夜阑的狗 个人简介 一个正在努力学技术的CV工程师 专注基础和实战分享 欢迎咨询 欢迎大家 这里是CSDN 我总结知识的地方 喜欢的话请三连 有问题请私信 文章目录 前言 一 Code Ru
  • 海量数据存储之Key-Value存储简介

    转自 http forchenyun iteye com blog 744935 Key value存储简介 具备高可靠性及可扩 展性的海量数据存储对互联网公司来说是一个巨大的挑战 传统的数据库往往很难满足该需求 并且很多时候对于特定的系统
  • V2X应用场景之协同式自动驾驶

    转自 http zhidx com p 96637 html V2X应用场景之协同式自动驾驶 这个应用场景我觉得是比较典型的 也想多花点时间给大家介绍一下 就是关于V2X在自动驾驶里面很典型的应用 我们管它叫协同式自动驾驶车队 什么意思呢
  • DockerFile详细介绍

    dockerfile 文件中的常见指令 详细教程地址 ADD 复制和解包文件 COPY 复制文本 CMD 指定这个容器启动的时候要运行的命令 只有最后一个会生效可被替代 ONBUILD 当构建一个被继承DockerFile 这个时候就会运行
  • Mysql多对多查询

    1 多对多需要三张表 如图所示 2 对应是SQL语句 SELECT A aname B hobby FROM A B AB WHERE A id AB aid AND B id AB bid 3 对应的查询结果
  • A list of Go projects

    Indexes and search engines These sites provide indexes and search engines for Go packages godoc org go search gowalker S
  • Python 实现FIR低通滤波器设计

    FIR Finite Impulse Response 有限脉冲响应 低通滤波器是一种数字滤波器 它可以在数字信号处理中用来对信号进行低通滤波 下面是一个简单的 Python 代码示例 用于设计 FIR 低通滤波器 import numpy
  • Oracle查看主键、删除主键以及新增联合主键

    Oracle查看主键 删除主键以及新增联合主键 主键是用于唯一标识表中的每一条数据的 不能重复也不能为null 一个表中不能有多个独立的主键 但是一个表中可以有联合主键 即多个字段组合 一 查看主键 SELECT FROM USER CON
  • vue中常用的7个属性

    1 el属性 用来指示vue编译器从什么地方开始解析 vue的语法 可以说是一个占位符 2 data属性 用来组织从view中抽象出来的属性 可以说将视图的数据抽象出来存放在data中 3 template属性 用来设置模板 会替换页面元素
  • 字节序转换

    一 概念 1 小端法 Little Endian 就是低位字节排放在内存的低地址端 即该值的起始地址 高位字节排放在内存的高地址端 2 大端法 Big Endian 就是高位字节排放在内存的低地址端 即该值的起始地址 低位字节排放在内存的高
  • Java Swing基础(顶层容器,中间层容器,原子组件)

    Swing基础 Swing顶层容器 Swing的3个顶层容器类 JFrame JApplet JDialog 都是重量级组件 分别继承了AWT组件Frame Applet和Dialog 每个顶层容器都有一个内容面板 通常直接或间接的容纳别的