Swing

Swing包中提供了更加丰富、便捷、强大的GUI组件,而且这些组件都是java语言编写而成的,因此,Swing组件不依赖于本地平台,可以真正做到跨平台运行,Swing有JWindow、JFrame、JDialog三个组件JWindow很少使用
JFrame
JFrame是独立存在的*窗口,不能放在其他容器中。JFrame用来创建一个窗口,简单操作有如加入按钮,并且可以实现按钮相关功能。JFrame关闭窗口只需调用setDefaultCloseOperation()方法,然后将把常量JFrame.EXIT_ON_CLOSE作为参数传入即可。
JDialog
JDialog表示对话框(模态对话框和非模态对话框)。
模态对话框:指用户需要等到处理完对话框后才能继续与其他窗口交互
非模态对话框:允许用户在处理对话框的同时与其他窗口交互
JDialog的构造方法:Swing
参数model用来指定窗口的模态(ture)还是非模态(false),默认值为false。

中间容器
中间容器不能独立存在,必须放在*窗口里。常见两种中间容器:JPanel和JScrollPane
JPanel:它是一个无边框,不能被移动、放大、缩小或者关闭。默认布局管理器是FlowLayout,也可以使用其带参构造函数JPanel(LayoutManager layout)或者它的setLayout()方法为其制定布局管理器。
JScrollPane:是一个带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想往JScrollPane面板中加入多个组件,应该先将组件加入JPanel中,再将JPanel添加到JScrollPane中。构造方法:
1.JScrollPane() 创建一个空的JScrollPane面板
2.JScrollPane(Component view) 创建一个显示指定组件的JScrollPane面板,只要组件的内容超过视图大小就会显示水平和垂直滚动条
3.JScrollPane(Component view,int vsbPolicy,int hsbPolicy) 创建一个显示指定容器、并具有指定滚动条策略的JScrollPane。参数vsbPolicy和hsbPolicy分别表示垂直滚动条策略和水平滚动条策略,应指定为ScrollPaneConstants的静态常量(1.HORIZONTAL_SCROLLBAR_AS_NEEDED:表示水平滚动条只在需要时显示,是默认策略。2.HORIZONTAL_SCROLLBAR_NEVER:表示水平滚动条永远不会显示。3.HORIZONTAL_SCROLLBAR_ALWAYS:表示水平滚动条一直显示)
文本组件
用于接收用户家输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea),他们有共同父类JTextComponent,JTextComponent是一个抽象类,提供了文本组件的常用方法(选中文本内容、设置文本内容以及获取文本内容等)
文本框只能接收单行文本的输入。文本框有一个子类JPasswordText,表示一个密码框,只能接收用户的单行输入,但是在此框中不显示用户输入的真实信息,而是通过显示指定的回显字符作为占位符,默认为*。
文本域能接收多行文本的输入
JLabel组件是一个静态组件,用于显示静态文本和图标。
按钮组件常见按钮组件:JButton、JCheckBox、JRadioButton等,都是抽象类AbstractButton类的直接或间接子类,该父类提供了一些按钮组件常用的方法。
JCheckBox组件被称为复选框,他有选中/未选中两种状态,如果用户想接收的输入只有”是“和”非“,则可以通过复选框来切换状态。(我理解为选择框)
JRadioButton组件被称为单选按钮,与复选框不同的是,单选按钮只能选中一个,就像收音机上的电台选择按钮,当按下一个,先去按下的按钮就会自动弹起,对于JRadioButton按钮来说,当一个按钮被选中时,先前被选中的按钮就会自动取消选中(像做作业的选择题,只能选单个答案,如果换一个之前的就不会再选)
JComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。
它分为可编辑和不可编辑两种形式,不可编辑:用户只能在现有的选项列表中选择;可编辑:用户还可以自己输入新内容。
菜单组件
下拉式菜单需要使用三个组件:JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项)
1.JMenuBar表示一个水平的菜单栏,用来管理菜单,不参与同用户的交互式操作。操作栏可以放在容器的任何位置,但通常情况会使用*窗口的setJMenuBar(JMenuBar menuBar)方法将它放在*窗口的顶部。
2.JMenu表示一个菜单,用来整合管理菜单项。菜单可以是单一层次的结构,也可以是多层次的结构。多使用JMenu(String text)构造函数创建JMenu菜单,参数text表示菜单上的文本。
JMenuItem表示一个菜单项,是菜单系统的最基本组件。创建JMenuItem菜单项时,通常会使用JMenumItem(String text)这个构造方法为菜单项指定文本内容。
JMenuItem继承自AbstractButton类,因此可以看成按钮,如果使用无参的构造方法创建了一个菜单项,可以调用父类的setText(String text)方法和setIcon()方法为其设置文本和图标。
创建和添加下拉式菜单步骤:
1.创建一个JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部
2.创建JMenu菜单对象,将其添加到JMenuBar菜单栏中
3.创建JMenuItem菜单项,将其添加到JMenu菜单中
弹出式菜单用JPopupMenu表示。它也是调用add方法添加JMenuItem菜单项,但它默认是不可见的,如果想显示处理,必须调用它的show(Component invoker,int x,int y)方法,invoker表示JPopupMenu菜单显示位置的参考组件,x,y表示invoker组件坐标空间中的一个坐标,显示的是JPopupMenu菜单的左上角坐标。