容器与IO流刍议

2023-11-10 17:30
文章标签 容器 io 刍议

本文主要是介绍容器与IO流刍议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

容器

一.何为容器

java提供了用于开发桌面程序的API(Application Programming Interface,应用程序接口),并存储在javax.swing包中。java.swing是一个非常强大的包,内容相当丰富。

通过GUI(Graphics User Interface,图形用户界面),用户可以和程序之间进行交流。java的抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI的类,早期进行设计时主要使用的

包是java.awt包提供的类,例如:Button(按钮)、TextField(文本框)、List(列表)等。而在JDK 1.2推出后,增加了一个新的javax.swing包,提供了更加强大的用来设计GUI的类。

以上为背景知识,现介绍两个重要的概念:容器类(Container)和组件类(Component)。在javax.swing包中JComponent类是java.awt包中Container类的一个直接子类,是java.awt包中的Component

类的一个间接子类,而学习GUI编程主要是学习Component类的一些重要子类。

组件:由Component类的子类或间接子类创建的对象叫做一个组件。

容器:由Container类的子类或间接子类创建的对象叫做一个容器,而在java.awt中Container类本身是Component类的子类,所以任何容器都是一个组件,任何一个容器都可以作为组件,但由Component类直接创建的对象以及非Container类的子类所创建的对象只能作为组件。从整体理解来看,组件和容器是相对的概念,容器之所以叫容器是因为它容纳了组件,组件之所以叫组件是因为它是整个容器的组成部分之一,这样就比较好理解了。

特点:Container类提供了一个public方法add(),向容器内添加组件

           Container类提供了一个方法removeAll(),移除所有组件,调用remove(Component C),可以移除参数为C的组件

           容器本身也是一种组件,因此可以把一个容器添加到另外一个容器中,从而实现容器的嵌套。

           当容器添加一个组件,或移除一个组件时,应当调用validate()方法,以保证容器内的组件能够正常地显示出来。

二.窗口,菜单条,菜单,菜单项

1.窗口是什么

可以直接显示、绘制到操作系统所控制的平台上,例如显示器,这样的容器被称作底层容器。而容器类的间接子类Jframe类的实例就是这样一个底层容器,也是我们俗称的窗口(Window、Frame为中间人),也就是说,窗口是底层容器的一种。

2.菜单条,菜单,菜单项

分别由JComponent的子类JMenubar、JMenu、JMenuItem所创建

以下为一个简单的菜单代码

package com.company;import java.util.Scanner;
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;import static javax.swing.JFrame.*;class WindowMenu extends JFrame{JMenuBar menuBar;JMenu menu,subMenu;JMenuItem item1,item2;public WindowMenu(){};public WindowMenu(String s,int x,int y,int w,int h){init(s);setLocation(x,y);setSize(w,h);setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE);}void init(String s){setTitle(s);menuBar = new JMenuBar();menu = new JMenu("A502");subMenu = new JMenu("Good Men");item1 = new JMenuItem("Li");item2 = new JMenuItem("Yang");item1.setAccelerator(KeyStroke.getKeyStroke('A'));item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));menu.add(item1);menu.addSeparator();menu.add(item2);menu.add(subMenu);subMenu.add(new JMenuItem("Ke"));subMenu.add(new JMenuItem("Xuan"));menuBar.add(menu);setJMenuBar(menuBar);}
}public class Main {public static void main(String[] args) {WindowMenu win = new WindowMenu("This is a window",20,30,200,190);}
}

其效果如图所示:

 

三.常用组件和布局

1.常用组件

都是JComponent的子类

JTextField(文本框)

JTextArea(文本区)

JButton(按钮)

JLabel(标签)

JCheckBox(复选区)

JRadioButton(单选按钮)

JComboBox(下拉列表)

JPassWordField(密码框)

这篇关于容器与IO流刍议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384203

相关文章

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

Java IO 操作——个人理解

之前一直Java的IO操作一知半解。今天看到一个便文章觉得很有道理( 原文章),记录一下。 首先,理解Java的IO操作到底操作的什么内容,过程又是怎么样子。          数据来源的操作: 来源有文件,网络数据。使用File类和Sockets等。这里操作的是数据本身,1,0结构。    File file = new File("path");   字

springboot体会BIO(阻塞式IO)

使用springboot体会阻塞式IO 大致的思路为: 创建一个socket服务端,监听socket通道,并打印出socket通道中的内容。 创建两个socket客户端,向socket服务端写入消息。 1.创建服务端 public class RedisServer {public static void main(String[] args) throws IOException {

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E

JavaEE-文件操作与IO

目录 1,两种路径 二,两种文件 三,文件的操作/File类: 1)文件系统操作 File类 2)文件内容操作(读文件,写文件) (1)打开文件 (2)关闭文件 (3)读文件/InputStream (4)写文件/OutputStream (5)读文件/reader (6)写文件/writer (7)Scanner 四,练习: 1,两种路径 1)绝对路径