JAVA图形界面(GUI)之容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

在Swing中,容器可以用来组织界面布局,容器中可以添加容器和组件。常用的有如下几种:
顶层容器:JFrame,JApplet,JDialog,JWindow
中间容器:JPanel,JScrollPane,JSplitPane,JToolBar
特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.
这篇博客将抽取其中几个常用容器为大家介绍,剩余的在之后用到了再介绍。

JFrame

JFrame是是个顶层容器,是屏幕上window的对象,能够最大化、最小化、关闭。
在上一篇博客《JAVA图形界面(GUI)》中的Swing示例中已经用到了。

上图就是JFrame的运行效果,中间显示”Hello Swing”的是Jpanel面板,在下面会介绍。

构造方法

方法名 说明
JFrame() 构造一个初始时不可见的新窗体
JFrame(GraphicsConfiguration gc) 以屏幕设备的指定 GraphicsConfiguration 和空白标题创建一个Frame
JFrame(String title) 创建一个新的、初始不可见的、具有指定标题的 Frame
JFrame(String title, GraphicsConfiguration gc) 创建一个具有指定标题和指定屏幕设备的GraphicsConfiguration的JFrame

使用示例

import javax.swing.JFrame;

public class SwingDemo extends JFrame
{
   public static void main(String[] args)
   {
      // 实例化JFrame对象并设置窗体标题
      JFrame frame = new JFrame("Swing Demo");
      // 设置窗体大小
      frame.setSize(300, 150);
      // 设置默认关闭操作为:关闭时退出
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      // 设置窗体在屏幕上的位置
      frame.setLocation(100, 100);
      // 设置窗体是否显示
      frame.setVisible(true);
   }
}

JDialog

对话框也是一个窗体,在对话框上没有最大化和最小化按钮。

方法名 说明
JDialog() 创建一个没有标题并且没有指定 Frame 所有者的无模式对话框
JDialog(Dialog owner) 创建一个没有标题但将指定的 Dialog 作为其所有者的无模式对话框
JDialog(Dialog owner, boolean modal) 创建一个具有指定所有者 Dialog 和模式的对话框
JDialog(Dialog owner, String title) 创建一个具有指定标题和指定所有者对话框的无模式对话框
JDialog(Dialog owner, String title, boolean modal) 创建一个具有指定标题、模式和指定所有者 Dialog 的对话框
JDialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc) 创建一个具有指定标题、所有者Dialog、模式和 GraphicsConfiguration 的对话框。
JDialog(Frame owner) 创建一个没有标题但将指定的 Frame 作为其所有者的无模式对话框
JDialog(Frame owner, boolean modal) 创建一个具有指定所有者 Frame、模式和空标题的对话框。
JDialog(Frame owner, String title) 创建一个具有指定标题和指定所有者窗体的无模式对话框
JDialog(Frame owner, String title, boolean modal) 创建一个具有指定标题、所有者 Frame 和模式的对话框
JDialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc) 创建一个具有指定标题、所有者 Frame、模式和 GraphicsConfiguration 的对话框
JDialog(Window owner) 创建一个具有指定所有者 Window 和空标题的无模式对话框
JDialog(Window owner, Dialog.ModalityType modalityType) 创建一个具有指定所有者 Window、模式和空标题的对话框
JDialog(Window owner, String title) 创建一个具有指定标题和所有者 Window 的无模式对话框
JDialog(Window owner, String title, Dialog.ModalityType modalityType) 创建一个具有指定标题、所有者 Window 和模式的对话框
JDialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc) 创建一个具有指定标题、所有者 Window、模式和 GraphicsConfiguration 的对话框
import java.awt.Frame;

import javax.swing.JDialog;
import javax.swing.JFrame;

public class SwingDemo
{
   public static void main(String[] args)
   {
      JDialog dialog = new JDialog((Frame) null, "Dialog");
      // 设置窗体大小
      dialog.setSize(300, 150);
      // 设置默认关闭操作为:关闭时退出
      dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      // 设置窗体在屏幕上的位置
      dialog.setLocation(100, 100);
      // 设置窗体是否显示
      dialog.setVisible(true);
   }
}

运行效果:

Dialog

JWindow

JWindow是一个没有边框的窗体。

方法名 说明
JWindow() 创建未指定所有者的窗口
JWindow(Frame owner) 使用指定的所有者框架创建窗口
JWindow(GraphicsConfiguration gc) 使用屏幕设备的指定 GraphicsConfiguration 创建窗口
JWindow(Window owner) 使用指定的所有者窗口创建窗口
JWindow(Window owner, GraphicsConfiguration gc) 使用屏幕设备的指定所有者窗口和 GraphicsConfiguration 创建窗口
import javax.swing.JFrame;
import javax.swing.JWindow;

public class SwingDemo
{
   public static void main(String[] args)
   {
      JWindow window = new JWindow();
      // 设置窗体大小
      window.setSize(300, 150);
      // 设置窗体在屏幕上的位置
      window.setLocation(100, 100);
      // 设置窗体是否显示
      window.setVisible(true);
   }
}

JPanel

JPanel属于中间容器,不可独立存在,需要依附于其他容器,在GUI开发中,JPanel经常使用,利用JPanel,我们可以轻易的对组件进行布局。

构造方法

方法名 说明
JPanel() 创建具有双缓冲和流布局的新 JPanel
JPanel(boolean isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新 JPanel
JPanel(LayoutManager layout) 创建具有指定布局管理器的新缓冲 JPanel
JPanel(LayoutManager layout, boolean isDoubleBuffered) 创建具有指定布局管理器和缓冲策略的新JPanel
目录
相关文章
|
5月前
|
Kubernetes Cloud Native Java
云原生之旅:从容器到微服务的演进之路Java 内存管理:垃圾收集器与性能调优
【8月更文挑战第30天】在数字化时代的浪潮中,企业如何乘风破浪?云原生技术提供了一个强有力的桨。本文将带你从容器技术的基石出发,探索微服务架构的奥秘,最终实现在云端自由翱翔的梦想。我们将一起见证代码如何转化为业务的翅膀,让你的应用在云海中高飞。
|
5月前
|
Java Linux Maven
java依赖冲突解决问题之容器加载依赖jar包如何解决
java依赖冲突解决问题之容器加载依赖jar包如何解决
|
2月前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
|
3月前
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
74 4
|
3月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
97 3
|
5月前
|
安全 算法 Java
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
这篇文章讨论了Java集合类的线程安全性,列举了线程不安全的集合类(如HashSet、ArrayList、HashMap)和线程安全的集合类(如Vector、Hashtable),同时介绍了Java 5之后提供的java.util.concurrent包中的高效并发集合类,如ConcurrentHashMap和CopyOnWriteArrayList。
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
|
5月前
|
Java 容器
【Java集合类面试一】、 Java中有哪些容器(集合类)?
这篇文章列出了Java中的四大类集合接口:Set、List、Queue和Map,以及它们的常用实现类,如HashSet、TreeSet、ArrayList、LinkedList、ArrayDeque、HashMap和TreeMap。
【Java集合类面试一】、 Java中有哪些容器(集合类)?
|
5月前
|
Java 测试技术 数据库
容器镜像解析问题之解析 Java 应用依赖时识别 jar 包如何解决
容器镜像解析问题之解析 Java 应用依赖时识别 jar 包如何解决
40 0
|
5月前
|
存储 安全 Java
【Java 第四篇章】流程控制、容器
本文档详细介绍了Java中的流程控制、集合类型、数组声明及容器的声明与遍历等内容。在流程控制部分,包括了if、if...else、if...else if...else、switch等语句的使用方法,并提供了具体示例。接着,文档对比分析了Java中单列集合(如HashSet、LinkedHashSet、TreeSet等)与双列集合(如HashMap、LinkedHashMap、Hashtable等)的特点及底层实现原理。此外,还介绍了如何声明与初始化数组,并提供了多种循环结构的使用示例。最后,通过具体的代码示例展示了不同集合类型的声明、基本操作(如添加、删除、更新、查找)以及遍历方法。
24 0
|
6月前
|
Java Scala 流计算
实时计算 Flink版产品使用问题之Docker镜像中的Java路径和容器内的Java路径不一致,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。