本文主要是介绍容器与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流刍议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!