JavaSwing界面设计(所有控件及示例)
JavaSwing界面设计(所有控件及示例)

中间容器
JPanel , JScrollPane , JSplitPane , JTabbedPane、JInternalFrame、Box 这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能
要可能会用到容器的嵌套 将中间容器按照某种布局添加到顶层容器中,形成满
足用户需求的操作界面
获得JFrame的容器并添加组件
Container con = getContentPane(); JPanel pautt = new JButton("Press Me"); panel.add(butt); con.add(panel);
示例:学生信息管理系统
学生基本信息录入界面的设计
设计一个用户界面,用于输入学生的下列信息:
姓名 JTextField
密码 JPasswordField
性别 JRadioButton 党否 JCheckBox
年龄 JSpinner
颜色 JColorChooser
加分 JSlider
系别 JComboBox
Check Box Radio Button
Button
基本概述
AWT ➢AWT(Abstract Window Toolkit)是在Swing出现之前用来设计
界面的工具包 ➢ 用awt包中的类创建的用户界面在不同的操作平台上有不同的
表现。使用不灵活 ➢import java.awt.*;
Swing ➢Swing是对AWT的扩展,它是Java 2中的一个标准包 组件都以J开头,例如:JFrame、JButton等。swing界面在不同
JavaSwing组件大全实例演示

JavaSwing组件⼤全实例演⽰⼀抛砖引⽟ 本⽂指在利⽤⼀个⼩”Swing 组件⼤全”来引导⼤家学习这门语⾔,熟悉Java Swing的各个组件。
并在学习过程中参考作者这⼀程序的⽅法和思想,最终形成⾃⼰的思维⽅式和学习⽅式。
你能举⼀返三是作者最开⼼的事情。
⼩程序演⽰了Java Swing⼤部分组件。
最后附上了全部代码及详细的注释说明。
希望本⽂能对⼤家学习Java有所帮助。
随着Java风潮席卷国内,学习Java的⽅法和路径越来越多。
⽽在⼤量的书本前,在Java庞⼤的类库前⼤⼤家都有点迷失⽅向的感觉,是学 J2EE,J2ME还是。
然⽽所有的这些都或多或少的离不开J2SE。
万丈⾼楼平地起。
J2SE是整个Java的基础,学好了这个对Java的各个⽅向都是很有利的。
⽽学习J2SE的最初点就在界⾯设计,因为界⾯编程是你来感觉最直接的⼿段,是提⾼⼤家编程兴趣的很好开始,因为你写完程序编译后可马上看到⾃⼰的成果。
⽽不像后台编程做完了都感受不到效果。
⽽好的界⾯也是你测试你其他程序的基础。
界⾯设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是⼀些拖拉操作,由于Java语⾔的设计中所有的东西都是程序代码,在 Java中如果想要设计⼀个好的界⾯,可不是简单的拖拉操作能完成的。
即使使⽤了如JBuilder这么强⼤的可视化⼯具,你也得亲⾃动⼿写⼀些界⾯设计代码才能很好的完成你的任务。
如果你能在此基础上理解Java界⾯设计的思想,对你学习这门语⾔将有莫⼤的帮助。
Java界⾯设计主要涉及Awt,Swing两⼤类库,Swing是Awt的扩展和功能加强。
下⾯我们就以Swing为基础来说说整个Java的界⾯设计。
⼆感受效果 在开始之前,让我们看看这篇⽂章要达到的效果,有了⽬标和成果才有学习的兴趣,起码我是这样认为和学习的。
如下图所⽰,这就是我们设计的界⾯,它包括了Swing中⼤部分常⽤的组件。
有些功能界⾯上反映不出来,⼤家可尝试编译源代码点南击各个部分,看看它们的响应事件。
Java17第十四章2-界面设计swing

JPopupMenu:弹出式菜单组件
安卓越科技(北京)有限公司
18
import java.awt.Color; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class PopupMenuTest { static JPopupMenu popup=null; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(200,300,200, 300); frame.setTitle("我的第一个小板凳"); //设置不允许调整窗口的大小 frame.setResizable(false); frame.setBackground(Color.ORANGE); popup = new JPopupMenu(); popup.add("徐明华"); popup.add("张燕君"); popup.add("徐诗佳"); popup.add("王子昊"); popup.setName("右击菜单"); frame.add(popup);//在窗体上加右击菜单 frame.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3){ popup.show(e.getComponent(), e.getX(), e.getY()); } } });//添加事件监听器 frame.setVisible(true);//显示窗体}}
第六章Swing用户界面组件

●
课后练习
编写程序,自定义[文件 文件]和 编辑 两个菜单, 编辑]两个菜单 ● 编写程序,自定义 文件 和[编辑 两个菜单, [文件 下子菜单 新建 ,[打开 ,[保存 和[退出 ; 文件]下子菜单 新建], 打开 打开], 保存 保存]和 退出 退出]; 文件 下子菜单[新建 [编辑 下子菜单 剪切 ,[复制 和[粘贴 ; 编辑]下子菜单 剪切], 复制 复制]和 粘贴 粘贴]; 编辑 下子菜单[剪切 实现简单的文本文件的编写. 实现简单的文本文件的编写. (选作) 选作)
例:FlowLayoutTest.java ● GridLayout
● 将容器划分成若干行列的网格,每个网格 将容器划分成若干行列的网格,
大小相同,组件从左到右, 大小相同,组件从左到右,从上到下依次排 列 例:GridLayoutTest.java
●
对话框
● JOptionPane
● 图标取决于消息类型
● 如果需要滚动条,Area textArea=new TextArea(8,40); JScrollPane scrollPane=new JScrollPane(textArea); 例:TextAreaTest.java
● ● 菜单
菜单
● 组成:菜单栏(JMenuBar),菜单(JMenu),菜单项(JMenuItem) 组成:菜单栏(JMenuBar),菜单(JMenu),菜单项(JMenuItem) ● 使用方法: 使用方法:
第六章
Swing用户界面组件 Swing用户界面组件
● 常规按钮(JButton) 常规按钮(JButton) ● 选择组件(JCheckBox,JRadioButton,JComboBox) 选择组件(JCheckBox,JRadioButton,JComboBox) ● 文本输入(JTextField,JTextArea) 文本输入(JTextField,JTextArea) ● 菜单(JMenuBar,JMenu,JMenuItem) 菜单(JMenuBar,JMenu,JMenuItem) ● 对话框(JOptionPane,JFileChooser) 对话框(JOptionPane,JFileChooser)
java-Swing控件的用法和范例

java-Swing控件的用法和范例类JTableJTable用来显示和编辑规则的二维单元表。
JTable有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。
例如,要设置一个10行10列的表:TableModel dataModel=new AbstractTableModel(){public int getColumnCount(){return10;}public int getRowCount(){return10;}public Object getValueAt(int row,int col){return new Integer(row*col);} };JTable table=new JTable(dataModel);JScrollPane scrollpane=new JScrollPane(table);注意,如果要在单独的视图中(在JScrollPane外)使用JTable并显示表标题,则可以使用getTableHeader()获取并单独显示它。
设计使用JTable的应用程序时,要严格注意用来表示表数据的数据结构。
DefaultTableModel 是一个模型实现,它使用一个Vector来存储所有单元格的值。
该Vector由包含多个Object 的Vector组成。
除了将数据从应用程序复制到DefaultTableModel中之外,还可以TableModel接口的方法来包装数据,这样可将数据直接传递到JTable,如以上示例所示。
这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。
在决定使用AbstractTableModel还是使用DefaultTableModel方面有一个好的实践经验,即在创建子类时使用AbstractTableModel作为基类,在不需要创建子类时则使用DefaultTableModel。
Java程序设计第11章 Swing程序设计

第11章 Swing程序设计
第11章 Swing程序设计
11.1 11.2 11.3 11.4 11.5 11.6 Swing概述 创建窗体 常用布局管理器 常用面板 常用组件 常用事件处理
11.2 创 建 窗 体
在开发Java应用程序时,通常情况下利用JFrame 类创建窗体。利用JFrame类创建的窗体分别包含标题、 最小化按钮、最大化按钮和关闭按钮。 JFrame类提供了一系列用来设置窗体的方法,例 如通过的setTitle(String title)方法,可以设置窗体的标题; 通过setBounds(int x, int y, int width, int height)方法可以 设置窗体的显示位置及大小,该方法接受4个int型参数, 前两个参数用来设置窗体的显示位置,依次为窗体左上 角的点在显示器中的水平和垂直坐标,后两个参数用来 设置窗体的大小,依次为窗体的宽度和高度。
【例6】
11.4.1 JScrollPane面板
JScrollPane类实现了一个带有滚动条的面板,用 来为某些组件添加滚动条,例如在学习JList和 JTextArea组件时均用到了该组件,JScrollPane类提供 的常用方法如下表所示。
方 法 功 能
setViewportView(Component view)
静态常量 TOP 常 量 值 1 标签内容显示位置 文字显示在图片的上方
CENTER BOTTOM
0 3
文字与图片在垂直方向重叠显示 文字显示在图片的下方
【例8】
JButton(按钮)组件
JButton组件是最简单的按钮组件,只是在按下和释放 两个状态之间进行切换,可以通过捕获按下并释放的动作执 行一些操作,从而完成和用户的交互。JButton类提供了一 系列用来设置按钮的方法,例如通过setText(String text)方 法设置按钮的标签文本,通过下面的代码就可以创建一个最 简单按钮:
java swing 代码例子

java swing 代码例子Java Swing是Java语言中用于构建图形用户界面(GUI)的一个开发工具包。
它提供了一组丰富的组件和容器,可以用于创建各种界面元素,如按钮、文本框、标签等。
下面是一些使用Java Swing的代码示例。
1. 创建一个简单的窗口```javaimport javax.swing.JFrame;public class SimpleWindow {public static void main(String[] args) {JFrame frame = new JFrame("简单窗口");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);frame.setVisible(true);}}```这段代码创建了一个简单的窗口,并设置了窗口的标题、关闭操作、大小和可见性。
2. 添加按钮和事件监听器```javaimport javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;public class ButtonExample {public static void main(String[] args) {JFrame frame = new JFrame("按钮示例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton button = new JButton("点击我");button.addActionListener(e -> {JOptionPane.showMessageDialog(frame, "你点击了按钮");});frame.add(button);frame.setSize(400, 300);frame.setVisible(true);}}```这段代码创建了一个带有一个按钮的窗口,当按钮被点击时,会弹出一个对话框显示"你点击了按钮"。
JAVAswing-常用组件

JAVAswing-常⽤组件在图形⽤户界⾯编程中,我们常常会提供⽤户登陆界⾯,⽐如登陆到会员管理系统、登陆到⼯资管理系统、仓库管理系统...常⽤组件Ⅰ.⽂本框(JTextField)Ⅱ.密码框(JPasswordField)Ⅲ.标签(JLable)Ⅳ.复选框(JCheckBox)Ⅴ.单选框(JRadioButton)Ⅵ.组合单选框(ButtonGroup)Ⅶ.下拉框(JComboBox)Ⅷ.列表(JList)Ⅸ.滚动窗格组件(JScrollPane)Ⅹ.多⾏⽂本框(JTextArea)ⅩⅠ.选项卡(JTabbedPane)实例简单会员管理系统登录界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉05⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JPanel jPanel1,jPanel2,jPanel3;24 JLabel jlb1,jlb2;25 JTextField jt;26 JPasswordField jpssswd;27 JButton jb1,jb2;2829public static void main(String[] args){30 Beekc beekc = new Beekc();31 }3233public Beekc(){34//创建组件35 jPanel1 = new JPanel();36 jPanel2 = new JPanel();37 jPanel3 = new JPanel();3839 jlb1 = new JLabel("⽤户");40 jlb2 = new JLabel("密码");41 jt = new JTextField(10);42 jpssswd = new JPasswordField(10);43 jb1 = new JButton("登录");44 jb2 = new JButton("注册");4546//设置布局管理器47this.setLayout(new GridLayout(3,1));48//添加JPanel49 jPanel1.add(jlb1);50 jPanel1.add(jt);51 jPanel2.add(jlb2);52 jPanel2.add(jpssswd);53 jPanel3.add(jb1);54 jPanel3.add(jb2);55//JPanel添加到JFanel56this.add(jPanel1);57this.add(jPanel2);58this.add(jPanel3);5960//窗体设置61this.setTitle("会员管理系统");62this.setSize(270,150);63this.setResizable(false);64this.setLocation(200,200);65this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);6667//显⽰68this.setVisible(true);6970 }7172 }⽤户注册界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;161718import javax.swing.*;19import java.awt.*;2021//继承JFrame22public class Beekc extends JFrame {2324//定义组件25 JPanel jPanel1,jPanel2,jPanel3;26 JLabel jlb1,jlb2;27 JCheckBox jc1,jc2,jc3;28 JRadioButton jrb1,jrb2;29 ButtonGroup bg;30 JButton jb1,jb2;3132public static void main(String[] args){33 Beekc beekc = new Beekc();34 }3536//构造函数37public Beekc(){38//创建组件39 jPanel1 =new JPanel();40 jPanel2 =new JPanel();41 jPanel3 =new JPanel();42 bg = new ButtonGroup();4344 jlb1 = new JLabel("你喜欢的运动");45 jlb2 = new JLabel("性别");46 jc1 =new JCheckBox("⾜球");47 jc2 =new JCheckBox("篮球");48 jc3 =new JCheckBox("排球");49 jrb1 = new JRadioButton("男");50 jrb2 = new JRadioButton("⼥");51 jb1 = new JButton("注册");52 jb2 = new JButton("取消");5354//设置布局管理器5556//JRadioButton添加ButtonGroup为⼀组57 bg.add(jrb1);58 bg.add(jrb2);5960//组件加到JPanel61 jPanel1.add(jlb1);62 jPanel1.add(jc1);63 jPanel1.add(jc2);64 jPanel1.add(jc3);65 jPanel2.add(jlb2);66 jPanel2.add(jrb1);67 jPanel2.add(jrb2);68 jPanel3.add(jb1);69 jPanel3.add(jb2);70//布局71this.setLayout(new GridLayout(3,1));7273//添加组件74this.add(jPanel1);75this.add(jPanel2);76this.add(jPanel3);7778//对窗体设置79this.setTitle("⽤户注册");80this.setSize(270,150);81this.setResizable(false);82this.setLocation(200,200);83this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 8485//显⽰86this.setVisible(true);878889 }9091 }⽤户调查界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JPanel jPanel1,jPanel2;24 JLabel jlb1,jlb2;25 JComboBox jcb;26 JList jl;27 JScrollPane jsp;2829public static void main(String[] args){30 Beekc beekc = new Beekc();31 }3233//构造函数34public Beekc(){35//创建组件36 jPanel1 = new JPanel();37 jPanel2 = new JPanel();38 jlb1 = new JLabel("籍贯");39 jlb2 = new JLabel("旅游地⽅");4041 String[] strJComboBox = {"北京","天津","⼴东"};42 jcb = new JComboBox(strJComboBox);4344 String[] strJLIst = {"故宫","天安门","长城","颐和园"};45 jl = new JList(strJLIst);46//设置显⽰多少个47 jl.setVisibleRowCount(3);48 jsp = new JScrollPane(jl);4950//设置布局管理器51//添加到JPanel52 jPanel1.add(jlb1);53 jPanel1.add(jcb);54 jPanel2.add(jlb2);55 jPanel2.add(jsp);5657this.setLayout(new GridLayout(1,2));5859//添加组件60this.add(jPanel1);61this.add(jPanel2);6263//对窗体设置64this.setTitle("⽤户调查");65this.setSize(270,110);66this.setResizable(false);67this.setLocation(200,200);68this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 6970//显⽰71this.setVisible(true);72 }7374 }翻译软件界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JSplitPane jsp;24 JList jList;25 JLabel jl1;2627public static void main(String[] args){28 Beekc beekc = new Beekc();29 }3031//构造函数32public Beekc(){33//创建组件34 String[] words = {"bird","boy","girl"};35 jList =new JList(words);36//new ImageIcon,存放图⽚37 jl1 = new JLabel(new ImageIcon("images/jinshanciba.png"));38//拆分窗体39 jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jList,jl1); 40//可以收缩41 jsp.setOneTouchExpandable(true);4243//设置布局管理器4445//添加组件46this.add(jsp);4748//窗体设置49this.setTitle("⾕歌翻译");50this.setSize(760,480);51this.setLocation(200,200);52this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5354//显⽰55this.setVisible(true);56 }57 }聊天界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JTextArea jTextArea;24 JScrollPane jScrollPane;25 JPanel jPanel;26 JTextField jTextField;27 JButton jButton;2829public static void main(String[] args){30 Beekc beekc = new Beekc();31 }3233//构造函数34public Beekc(){35//创建组件36 jTextArea = new JTextArea();37 jScrollPane = new JScrollPane(jTextArea);3839 jPanel = new JPanel();40 jTextField = new JTextField(20);41 jButton = new JButton("发送");4243//设置布局管理器44//添加到JPanel45 jPanel.add(jTextField);46 jPanel.add(jButton);4748//添加组件49this.add(jScrollPane);50this.add(jPanel,BorderLayout.SOUTH);5152//窗体设置53this.setTitle("聊天界⾯");54this.setIconImage((new ImageIcon("images\\qq.png")).getImage()); 55this.setSize(320,270);56this.setLocation(200,200);57this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5859//显⽰60this.setVisible(true);61 }6263 }聊天登录界⾯。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
示例:学生信息管理系统
学生基本信息录入界面的设计
设计一个用户界面,用于输入学生的下列信息: 姓名 JTextField 密码 JPasswordField 性别 JRadioButton 党否 JCheckBox 年龄 JSpinner 颜色 JColorChooser 加分 JSlider 系别 JComboBox 选课 JList 确认 JButton 保存 JFileChooser 结果 JTextArea 要求输入完毕按“确认”将该学生的信息记录到“结果”中;按 “保存”将结果保存到一个指定的文件中;基本信息与结果界面 上下分布在一个JSplitPane中;屏幕下方显示当前时间
26
基本组件—按钮
按钮是常用的功能组件,表示按钮的类为JButton。
构造方法 JButton button1 = new JButton(“姓名”); ImageIcon ii = new ImageIcon(“java.gif”); JButton button2 = new JButton(ii); JButton button3 = new JButton(“姓名”,ii);
20
获得JFrame的容器并添加组件
Container con = getContentPane();
JPanel panel = new JPanel();
JButton butt = new JButton("Press Me"); panel.add(butt); con.add(panel);
Swing
Swing是对AWT的扩展,它是Java 2中的一个标准包 组件都以J开头,例如:JFrame、JButton等。swing界 面在不同的平台上外观完全一样,真正做到平台独立 import javax.swing.*;
6
界面设计中常用组件类的体系结构
ng.Object ponent java.awt.Container java.awt.Panel java.applet.Applet java.awt.Window java.awt.Dialog javax.swing.JComponent java.awt.Frame
18
设置JFrame的图标
相关类
a)
图标类:javax.swing.ImageIcon
b) 图像类:java.awt.Image 创建图标和图像对象 a) ImageIcon ii = new ImageIcon(“x.gif”); b) Image image = ii.getImage(); 设置 setIconImage(image);
12
基本组件
JLabel JButton、JCheckBox、JRadioButton JList、JComboBox JTextField、JPasswordField、JTextArea JToolBar、JToolTip、JProgressBar JSlider、JSpinner JFileChooser、JColorChooser JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem 、JRadioButtonMenuItem、JPopupMenu JTable JTree JOptionPane、JSeparator
3
用户界面概述
用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
GUI的组件
组件 基本的控制组件,例如:Button、Label等。
容器:能容纳和排列组件的组件
组件继承它的父容器的性质
4
Menu Text Box
Label
15
创建用户主窗口--JFrame
常用方法
void setExtendedState(int); //设置扩展的状态,取值: NORMAL ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_BOTH //最大化 void setDefaultCloseOperation(int); //设置默认的关闭时的操作,取值: DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE //关闭
界面设计
张蕾 zhanglei@
1
主要内容
概述
用户界面
组件介绍
布局管理
事件处理
菜单和表格
2
本章基本要求
了解AWT和Swing
熟悉4个顶层容器 掌握JFrame 熟悉常用的中间容器 会对组件进行布局
熟悉常用基本组件的创建和操作
会设置组件的颜色和字体 会处理组件上发生的事件 会创建菜单和表格
11
中间容器
JPanel , JScrollPane , JSplitPane , JTabbedPane 、JInternalFrame、Box 这些容器提供将有关组件按照某种布局组合在 一起,然后放入中间容器或顶层容器的功能 JPanel提供一个面板 JScrollPane是具有滚动条的窗格 JSplitPane是具有拆分功能的窗格 JTabbedPane是带有若干标签的分类窗格 JInternalFrame用于创建内嵌于JFrame中的内 部框架 Box提供创建横向/纵向盒子容器的功能
17
示例:扩展JFrame创建
import javax.swing.*; public class SecondJFrame extends JFrame { public SecondJFrame() { super(“My Second JFrame”); setDefaultCloseOperation(EXIT_ON_CLOSE); setExtendedState(MAXIMIZED_BOTH); setVisible(true); } public static void main(String[] args) { SecondJFrame f = new SecondJFrame(); }}
Swing组件
JApplet
JDialog
JWindow
JFrame
7
用户界面
8
Java程序界面的构成
一个顶层容器(即主窗口)
顶层容器包含若干个中间容器
每个中间容器包含若干个基本组件 按照合理的布局方式将它们组织在一起 基本组件可响应发生在其上的事件
9
顶层容器
容器
容器是用来容纳和管理一组界面元素的对象。基本 组件必须被安排在某个容器中,否则就无法使用。
16
示例:直接使用JFrame创建
import javax.swing.*; public class FirstJFrame { public static void main(String[] args) { JFrame f = new JFrame(); f.setTitle("My First JFrame"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(300, 300); f.setVisible(true); }}
19
界面的基本组织方式
由JFrame创建初始的用户界面 由JPanel、JScrollPane、JTabbedPane、JSplitPane、 JInternalFrame、Box等创建中间容器 由基本组件类创建有关的组件 将基本组件按照某种布局添加到中间容器中,根据需 要可能会用到容器的嵌套 将中间容器按照某种布局添加到顶层容器中,形成满 足用户需求的操作界面
22
示例:学生信息管理系统
步骤一:由JFrame创建初始的用户界面,获得JFrame的容器,
添加中间容器JPanel JFrame f=new JFrame(); f.setTitle("学生信息管理系统"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setExtendedState(MAXIMIZED_BOTH); //f.setSize(800,600); //f.setLocation(200,200); Container con=f.getContentPane(); JPanel pan=new JPanel(); con.add(pan); f.setVisible(true);
13
创建用户主窗口--JFrame
类 JFrame 是java.awt.Frame的子类
在Swing的组件中, JFrame 并不全是由Java编写的
是一种与平台关系比较密切的组件(Heavyweight component)
ng.Object | +ponent | +--java.awt.Container | +--java.awt.Window | +--java.awt.Frame | +--javax.swing.JFrame
Combo Box List Box
Frame Window
Check Box Radio Button
Button
5
基本概述
AWT
AWT(Abstract Window Toolkit)是在Swing出现之前 用来设计界面的工具包 用awt包中的类创建的用户界面在不同的操作平台上有 不同的表现。使用不灵活 import java.awt.*;