swing组件总结认识

合集下载

Javaswing学习总结

Javaswing学习总结

Javaswing学习总结一、常用布局•边界布局(BorderLayout)•网格布局(GridLayout)•流式布局(FlowLayout)•绝对布局(null)边界布局(BorderLayout)按方位分为5 个区域(东、西、南、北、中),每个区域放置一个组件。

JPanel panel = new JPanel(new BorderLayout());网格布局(GridLayout)它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。

GridLayout的常用构造方法•默认构造, 每个组件占据一行一列JPanel panel = new JPanel(new GridLayout());•指定行数和列数的网格布局JPanel panel = new JPanel(new GridLayout(int rows, int cols));•指定行数和列数的网格布局, 并指定水平和竖直网格间隙JPanel panel = new JPanel(new GridLayout(int rows, int cols, int hgap, int vgap));流式布局(FlowLayout)流式布局管理器。

按水平方向依次排列放置组件,排满一行,换下一行继续排列。

同一行(水平方向)的组件的对齐方式由 FlowLayout 的align属性确定,它可能的值如下:•FlowLayout.LEFT : 左对齐•FlowLayout.CENTER : 居中对齐(默认)•FlowLayout.RIGHT : 右对齐•FlowLayout.LEADING : 与容器方向的开始边对齐,例如,对于从左到右的方向,则与左边对齐•FlowLayout.TRAILING : 与容器方向的结束边对齐,例如,对于从左到右的方向,则与右边对齐。

FlowLayout的常用构造方法•默认居中对齐的,水平和垂直间隙是 5 个单位JPanel panel = new JPanel(new FlowLayout());•指定对齐方式,默认的水平和垂直间隙是 5 个单位JPanel panel = new JPanel(new FlowLayout(int align));•指定对齐方式,水平和竖直间隙JPanel panel = new JPanel(new FlowLayout(int align, int hgap, int vgap));绝对布局(null)绝对布局没有特定一个布局管理器类来表示,给容器的布局管理器设置为null,就表示使用绝对布局,即通过设置组件的坐标和宽高来布置组件。

(总结)Swing组件的使用

(总结)Swing组件的使用

(总结)Swing组件的使用Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing 的基本组件:1.按钮(JButton):Swing 中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮。

(1).JButton 常用的构造方法。

JButton(String text):按钮上显示字符。

JButton(Icon icon) :按钮上显示图标。

JButton(String text, Icon icon):按钮上既显示图标又显示字符。

(2).常用方法:b1.setEnabled(false); //使按钮当前不可用b1.setToolTipText("..."): //设置按钮提示文本b1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键(3).案例代码:[java] view plain copy print?public class JButtonExample3 extends JPanel implements ActionListener{ protected JButton b1, b2, b3; public JButtonExample3() { ImageIconleftButtonIcon = createImageIcon("right.gif");ImageIcon middleButtonIcon =createImageIcon("middle.gif"); ImageIcon rightButtonIcon = createImageIcon("left.gif");b1 = new JButton("失效中间按钮(D)", leftButtonIcon);b1.setVerticalTextPosition(AbstractButton.CENTER);// 水平中间对齐b1.setHorizontalTextPosition(AbstractButton.LEADING);// 相当于LEFTb1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键b1.setActionCommand("disable");b2 = new JButton("M中间按钮", middleButtonIcon);b2.setVerticalTextPosition(AbstractButton.BOTTOM);b2.setHorizontalTextPosition(AbstractButton.CENTER);b2.setMnemonic(KeyEvent.VK_M);// 将b2邦定alt+M键b3 = new JButton("E激活中间按钮", rightButtonIcon);b3.setMnemonic(KeyEvent.VK_E);// 将b3邦定alt+E键b3.setActionCommand("enable");b3.setEnabled(false); // 给1和3添加事件监听b1.addActionListener(this);b3.addActionListener(this); // 设置按钮提示文本b1.setToolTipText("点击这个按钮,将使中间的按钮失效!"); b2.setToolTipText("点击这个按钮,没有任何的事件发生!");b3.setToolTipText("点击这个按钮,将使中间的按钮有效"); // 将按钮添加到JPanel中add(b1);add(b2); add(b3); } public void actionPerformed(ActionEvent e) { if ("disable".equals(e.getActionCommand())){ b2.setEnabled(false);b1.setEnabled(false);b3.setEnabled(true); } else{ b2.setEnabled(true);b1.setEnabled(true);b3.setEnabled(false); } }protected static ImageIcon createImageIcon(String path) { .URL imgURL =JButtonExample3.class.getResource(path); if (imgURL != null) { return newImageIcon(imgURL); } else{ System.err.printl n("Couldn′t find file: " + path); return null; } } public static void main(String[] args) { // 设置使用新的swing界面//提供一个关于新创建的JFrame 是否应该具有当前外观为其提供的Window 装饰(如边框、关闭窗口的小部件、标题等等)的提示。

Swing基础知识整理

Swing基础知识整理

Swing组件一、顶级容器组件1:框架(JFrame)框架(JFrame)是一个图形界面的主窗口,由边框、标题栏、最大化、最小化、还原、移动、关闭按钮、系统菜单,以及内容窗格组成。

内容窗格是框架的核心区域,主要的图形界面组件、菜单栏、工具栏都在内容窗格中。

框架是一个程序的主窗口,每个具有图形界面的程序都至少要有一个框架,如果程序中还有其他窗口,并且这些窗口依赖于框架的,则应使用对话框(JDialog),如果要使其它窗口显示在框架的内部,则应该使用内部框架(JInternalFrame),内部框架是专用容器组件不是顶级容器组件。

2、对话框(JDialog)⏹消息框:显示一条消息⏹选择框:让用户进行选择⏹文件选择框:选择文件进行打开、保存等操作⏹颜色选择框:从调色板中选择颜色每个对话框都必须依附于框架下面主要介绍V5.0用到的通用对话框(JDialog)和消息框(JOptionPane):通用对话框(JDialog)例:在主框架程序中添加一个通用对话框,里面有一个文字标签和一个按钮:public void showDialog(){JDialog dialog = new JDialog(this,”对话框”);JPanel panel = new JPanel();Dialog.getContentPane().add(panel);panel.add(new JLabel(“这是一个对话框。

”));panel.add(new JButton(“点击”));dialog.pack();dialog.setVisible(true);}对话框分为有模式的和无模式的两种类型:有模式的对话框在显示时,将屏蔽用户向对话框所属的主框架键入的所有内容,用户不能对主框架进行任何操作。

无模式对话框在显示时,用户仍然可以用鼠标点击主框架,在主框架里输入内容,或移动主框架。

缺省的JDialog对话框都是无模式对话框。

Swing组件

Swing组件
常用容器之一 有效利用他使版面管理更为容易; 支持double buffering,处理动画片更为流畅(无闪烁) 构造函数:
• JPanel(LayoutManager layout,boolean isDoubleBuffered)
范例 path:exam\ch5
• JPanel1.java //利用JPanel排列5个JLabel对象
5)不可编辑信息的显示 Jlabel, JProgressBar, JToolTip
6)可编辑的格式化信息的显示 JColorChooser, JFileChooser, JTable, JTextField, JTextArea, JTree
总结
JFrame、JApplet、Jdialog是swing的底层 容器,是重量级容器;
❖ComponentEvent //组件移动、缩放、显示、隐藏
❖FocusEvent
//获得或失去焦点
❖KeyEvent
//在组件聚焦时,接收键盘输入
❖MouseEvent
//鼠标点击和进、出测试区
❖MouseMotionEvent //鼠标移动
4、能激活Container类的ContainerEvent事件的Swing组件
• 当树的结构有任何改变时,例如节点值变了、新增或删除了节 点等。
• 必须实现TreeModelListener接口
void treeNodesChanged(TreeModelEvent e)
void treeNodesInserted(TreeModelEvent e)
void treeNodesRemoveed(TreeModelEvent e)
Swing组件层次
增加Swing组件后类层次图

tp14swing组件

tp14swing组件

进度条JProgressBar
2. 常用方法
方法
int getMaximum() int getMaximum() int getOrientation()
double getPercentComplete() String getString() int getValue() boolean isStringPainted() void setMaximum(int max) void setMinimum(int min) void setOrientation(int direct)
| +--javax.swing.JProgressBar 1. 构造函数 格式:JProgressBar () 功能:建立一个水平方向的进度条JProgressBar对象,其变化范围是0到100。 格式:JProgressBar (int direct) 功能:建立一个方向为direct的进度条JProgressBar对象,其变化范围是0到100。 格式:JProgressBar (int min,int max) 功能:建立一个水平方向的进度条JProgressBar对象,其范围是min到max。 格式:JProgressBar (int direct ,int min,int max) 功能:建一个方向为direct的进度条JProgressBar对象,其范围是min到max。
JComboBox jcb=new JComboBox (stu); 这就创建了一个下拉列表框jcb,其初始数据有4项,分别为:“王小平”,”刘
国军”,”吴芬”,”李建军”。 2.常用方法
下拉列表框JComboBox
方法
void addItem(Object itm) void insertItemAt(Object itm,int idx) void removeItemAt(int idx) void removeItem(Object itm) void removeAllItems() Object getItemAt(int idx) int getItemCount() int getSelectedI次关系为: ng.Object | +ponent

Swing学习笔记1-----Swing组件类的层次

Swing学习笔记1-----Swing组件类的层次

Swing学习笔记1-----Swing组件类的层次1. 从结构上划分Swing 组件类分为两种,⼀种是JComponent类,⼀种是Windows类.其中windows类包含的是⼀些可以独⽴显⽰的组件,⽽JComponent类包含的是不可以独⽴显⽰的组件.什么是可独⽴显⽰的组件和不可独⽴显⽰的组件?可独⽴显⽰的组件:当运⾏⼀个程序时,可独⽴显⽰的组件⽆需在其他组件上即可显⽰,即它可以直接显⽰出来,例如JFrame类.不可独⽴显⽰的组件:运⾏时,必须依靠可独⽴显⽰的组件才能将其显⽰出来,如JLabel类,JButton类,得托付在类似于JFrame类上才能显⽰出来.2.从功能上划分从功能上划分分为:顶层组件,中间组件和基本组件.顶层容器:JFrame,JDialog,JApplet,JWindow.所谓的顶层容器,也就是之前讲的Window组件,是可以独⽴显⽰的.中间容器:JPanel,JScrollPane,JSplitPane,JToolBar.所谓的中间容器也就是指那些可以充当载体但是不能独⽴显⽰的组件,就是⼀些基本组件可以依托在其中,但是也不能独⽴显⽰,必须依托在顶层容器中才⾏.特殊容器:在GUI上其特殊作⽤的中间层,如JInternalFrame,JLayeredPane,JRootPane.这⾥的特殊容器其实也是中间容器类的⼀种,只不过在图形上更加能够起到专业和美化的作⽤.基本组件:能起到⼈机交互的组件,如JButton,JLabel,JComboBox,JList,JMenu,JSlider,JTextField.注:要添加基本组件,⼀定要添加中间容器来承载.以下⽰例能很好的描述这个问题:public class Test {public static void main(String[] args) {JButton jButton = new JButton("test");}}这段代码运⾏后没有任何显⽰.再看这段代码public class Test {public static void main(String[] args) {JFrame jFrame = new JFrame("test");JButton jButton = new JButton("test");jButton.setSize(10,20);jFrame.add(jButton);jFrame.setSize(400,300);jFrame.setVisible(true);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}}运⾏结果如图所⽰:尽管设置了jButton的⼤⼩为10,20.但是依然充满了整个Frame.为了实现jButton的⼤⼩为10,20,必须添加⼀个中间容器来承载才⾏.再看如下代码:public class Test {public static void main(String[] args) {JFrame jFrame = new JFrame("test");JButton jButton = new JButton("test");JPanel pane = new JPanel();jFrame.setContentPane(pane);jButton.setSize(10,20);jFrame.setSize(400, 300);pane.add(jButton);jFrame.setVisible(true);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}}运⾏结果:这样就达到了我们的设计⽬的.。

swing 的用法

swing 的用法

swing 的用法一、概述Swing是Java编程语言中一个重要的图形用户界面(GUI)工具包,提供了各种组件和布局管理器,用于创建丰富多彩的桌面应用程序。

Swing包含了多个重要的组件类,如按钮(Button)、标签(Label)、文本框(TextField)、文本域(TextArea)等等,这些组件类提供了丰富的API,用于实现各种交互功能。

二、Swing组件1.按钮(Button):Swing中的Button类是一个简单的用户界面组件,用于响应用户的点击事件。

可以通过设置按钮的文本、图标和监听器等属性来定制按钮的外观和行为。

2.标签(Label):Label类用于在GUI中显示文本或图像信息。

可以通过设置标签的文本内容、字体、颜色等属性来定制标签的外观。

3.文本框(TextField)和文本域(TextArea):这两个组件类分别用于输入和显示多行文本信息。

可以通过设置文本框和文本域的大小、行数、滚动条等属性来定制它们的外观和行为。

4.菜单(Menu)和菜单项(MenuItem):Menu类用于创建菜单,MenuItem类是菜单项的子类。

可以通过设置菜单和菜单项的名称、图标、监听器等属性来定制它们的外观和行为。

5.表格(Table)和表格组件(JTable):表格是Swing中另一个重要的组件类,用于显示和操作表格数据。

可以通过设置表格的大小、列数、行头、单元格样式等属性来定制表格的外观和行为。

三、Swing布局管理器Swing提供了多种布局管理器,用于控制组件在容器中的布局方式。

常见的布局管理器包括:1.FlowLayout:按照水平或垂直方向自动排列组件。

2.BorderLayout:将容器分为左右、左上、右上、左下、右下五个区域,将组件放置在指定的区域中。

3.GridLayout:将组件按照网格方式排列,可以设置行数和列数。

4.CardLayout:用于管理多个面板或窗口,通过切换卡片来显示不同的界面。

swing 组件和容器——java swing 组件技术(中)

swing 组件和容器——java swing 组件技术(中)

swing 组价和容器——java swing 组件和技术(中)一、swing组件和容器概览1.顶层容器(JFrame,JDialog,JApplet)JFrame—框架,主要用来设计应用程序的图像界面JDialog—对话框,通常用来设计具有依赖关系的窗口JApplet—小应用程序,主要用来设计嵌入网页中运行的java程序2.一般容器普通容器(JPanel、JScrollPane、JToolbar、JSplitPane、JTabbedPane) JPanel—面板,通常只有背景颜色的普通容器JScrollPane—滚动窗格,具有滚动条JToolbar—工具条,通常将多个组件排成一排或者一列JSplitPane—分裂窗格,用来装两个组件的容器JTabbedPane—选项卡窗格,允许多个组件共享相同的界面空间专用容器(JLayeredPane、JRootPane 、JInternalFrame)JLayeredPane—分层窗格,给窗格增加了深度的概念JRootPane—根窗格,一般是自动创建的容器JInternalFrame—内部窗格,可以在一个窗口内显示若干个类似于框架的窗口3.基本控件(JButton、JCombobox、JList、JMenu、JSlider、JTextField)4.不可编辑信息组件(JLabel、JProgressBar、JToolTip等)5.可编辑组件(JColorChooser、JFileChooser、Jtabel、JTextArea、JTree等)二、常用的swing组件和容器1.JFrame✧顶层容器,默认不可见;默认布局方式为BorderLayout✧构造函数:●JFrame()●JFrame(String title)//title 为框架的标题内容✧JFrame常用方法●setDefaultCloseOperation(int operation)—设置关闭框架的行为参数operation一般是JFrame. EXIT_ON_CLOSE,表示关闭框架时,则退出程序●setSize(int width, int height)—设置框架的大小●setVisible(boolean b)—设置框架是否可见,默认为false●getContentPane()—获取顶层容器的内容面板●add(Component comp)—往内容面板添加组件●setLayout(LayoutManagermgr)—设置布局方式,默认为BorderLayoutexample:JDialog 和JOptionPane的demo2.JDialog 和JOptionPanea)JDialog✧在已有的窗口上创建对话框,可以使用此类创建自定义的对话框✧构造函数:⏹JDialog(Dialog owner, String title, boolean modal)⏹JDialog(Frame owner, String title, boolean modal)owner—指定对话框的父窗口title—对话框的标题modal—对话框的模式(true为“有模式对话框”,false为“无模式对话框”✧JDialog常用方法⏹setSize(int width, int height)—设置对话框的大小⏹getContentPane()—获取顶层容器的内容面板⏹add(Component comp)—往内容面板添加组件⏹setLayout(LayoutManagermgr)—设置布局方式,默认为BorderLayoutb)JOptionPane✧提供一些现成的、各种常用的标准对话框(有模式的对话框)✧JOptionPane类里静态方法众多,但几乎所有静态方法都遵循showXxxDialog()的形式,如下:这四种方法的参数都遵循一致的模式:①ParentComponent:指示对话框的父窗口对象,一般为当前窗口。

第八章 SWING组件

第八章 SWING组件

列表 根据String数组构造一个包含四个可选项的 列表
String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data);
Vector listData = new Vector(); listData.addElement("one "); listData.addElement("two "); listData.addElement("three "); listData.addElement("four "); JList list = new JList(listData);
第八章 SWING组件 组件
按钮 经常用到的按钮
JButton,JToggleButton,JCheckBox, JRadioButton 均是AbstractButton的子类或间接子类 都可以设置文本,设置图标,注册事件监听程 序 在AbstractButton中定义了各种按钮所共有的一 些方法,例如addActionListener(),setEnabled(), setText(),setIcon()等
b1.setMnemonic(KeyEvent.VK_S);
setActionCommand()方法为按钮设置一个命 令名 getActionCommand()方法
因此当事件发生时,判断是在哪一个按钮上发 生的
切换按钮
JToggleButton是具有两种状态的按钮,即选中状 态和未选中状态 JToggleButton的构造方法
程序8-3 程序 程序8-3 说明

java中swing组件认识

java中swing组件认识

概述java中图形用户界面(GUI,Graphics User Interface)用户与程序进行交互的界面。

java早期进行用户界面设计的时候,使用java.awt包中提供的类,如Button,TextField,List等组件。

AWT抽象窗口工具包(Abstrac Window Toolkit)。

java1.2之后增加了更为强大的的工具包javax.swing包。

awt包中的类创建的组件习惯上称之为重组件,当我们用其包下的Button类创建按钮组件的时候,都会有一个相应的本地组建在为它工作,(这个本地组件我们又称之为它的同位体)AWT组件的设计原理就是把与显示组件相关的许多工作和处理组件事件的工作交给相应的本地组件因此我们把有同位体的组件称为重组件。

基于重组件的GUI有很多不足之处,其显示与本地的环境有很关,导致同样的外观在不同的电脑上显示不同的外观。

另外使用AWT进行GUI设计的时候可能会消耗大量的操作系统的资源。

javax.swing包提供的组件更加丰富和强大,我们称之为SWING组件。

其中大部分组件是轻组件。

轻组件把与显示相关的许多工作和处理组件事件的工作交给了相应的UI代表来完成。

这些UI代表是用Java语言编写的类,因此当这些泪被加载到java的运行环境的时候组件的外观不依赖平台,而且性能更好。

整体框架Component|--Container|--Window|-- Frame Dialog|--JFrame JDialog|--Jcomponent|--Jpanel ,JTable ,JTree ,JTeatArea ,JTextField,JButton学习GUI编程必须理解的俩概念Container 容器类和Component 组件类1,java把由Component类的子类或间接子类创建的对象称为组件2,java把由Comtainer的子类或间接子类创建的对象成为容器3,可以使用add()方法向容器中添加组件,调用removeAll()方法可以移除容器所有组件,也可以调用remove(Component c)方法移除容器参数指定的组件。

swing组件及其用法

swing组件及其用法

swing组件及其用法Swing组件是用于创建图形用户界面的Java库。

它提供了丰富的界面元素和布局管理器,可以实现各种图形界面应用程序。

下面是一些常用的Swing组件及其用法:1. JFrame:顶层窗口组件,用于创建一个窗口。

用法示例:```javaJFrame frame = new JFrame("My Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500, 300);frame.setVisible(true);```2. JPanel:容器组件,用于组织其他组件。

用法示例:```javaJPanel panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(new JButton("Button 1"));panel.add(new JButton("Button 2"));```3. JButton:按钮组件,用于触发动作。

用法示例:```javaJButton button = new JButton("Click me");button.addActionListener(e -> System.out.println("Buttonclicked"));```4. JLabel:标签组件,用于显示文本或图像。

用法示例:```javaJLabel label = new JLabel("Hello, world!");label.setIcon(new ImageIcon("image.png"));```5. JTextField:文本输入框组件,用于接收用户输入。

Swing组件应用介绍课件

Swing组件应用介绍课件
ERP、CRM等系统。
2
桌面应用:Swing组件在桌 面应用中广泛使用,如文件
管理器、邮件客户端等。
3
教育应用:Swing组件在教 育应用中广泛使用,如教学
软件、在线课程等。
4
游戏应用:Swing组件在游 戏应用中广泛使用,如2D
游戏、休闲游戏等。
组件选择与搭配
选择合适的组件:根据需求选择合适的Swing组 件,如按钮、文本框、列表等。
● 窗口组件:JFrame、JDialog、JWindow ● 面板组件:JPanel、JScrollPane、JSplitPane ● 按钮组件:JButton、JToggleButton、JCheckBox ● 文本组件:JLabel、JTextField、JPasswordField ● 选择组件:JComboBox、JList、JRadioButton ● 图像组件:JIcon、JImageIcon、JLabel ● 菜单组件:JMenuBar、JMenu、JMenuItem ● 工具栏组件:JToolBar、JButton、JToggleButton ● 布局管理器:BorderLayout、FlowLayout、GridLayout ● 事件处理:ActionListener、MouseList减少组件数量:尽量减少不 必要的组件,提高页面加载
速度
缓存数据:对于经常使用的数 据,可以缓存起来,减少服务
器请求次数
延迟加载:对于不需要立即 显示的组件,可以延迟加载,
提高页面响应速度
压缩图片:对于页面中的图 片,可以压缩后再使用,减 少页面大小,提高加载速度
04
企业级应用开发: Swing组件可用于开发 企业级应用,如ERP、 CRM等。
● 标签(JLabel):用于显示文本或图标 ● 按钮(JButton):用于触发事件 ● 文本框(JTextField):用于输入文本 ● 列表框(JList):用于显示和选择列表项 ● 组合框(JComboBox):用于从列表中选择项目 ● 复选框(JCheckBox):用于表示选中或未选中状态 ● 单选按钮(JRadioButton):用于表示选中或未选中状态,一组单选按钮只能选中一个 ● 滚动条(JScrollBar):用于滚动显示内容 ● 表格(JTable):用于显示和编辑表格数据 ● 树(JTree):用于显示和编辑树形结构数据 ● 菜单(JMenu):用于显示和选择菜单项

swing学习总结

swing学习总结

Swing常用的组件
2014-1-1
Swing事件处理机制
swing 的事件处理遵循的是一种委托处理事件模型分
为“事件来源”(Event Source)和处理事件的“监 听器”(Listener),还有事件(Event)三要素,如下 图所示:
事件
2014-1-1
事件(awtEvent)
事件(Event)是在执行可视化程序的过程中,各种操
以及容器缩放时,组件的摆放。 BorderLayout FlowLayout CardLayout GridLayout GridBagLayout BoxLayout
2014-1-1
BorderLayout
BorderLayout的类层次结构图:
ng.Object --java.awt.BorderLayout
2014-1-1
Swing组件类的层次(从显示效果划分)
Component Container
不可独立 显示的组 件
Window
JComponent
可以独立 显示的组 件
Frame Jpanel JTable JTree JTextA rea
Dialog

JFrame
2014-1-1
JDialo g
Swing学习总结
2014-1-1
AWT和Swing
awt的组件是重量级的组件,每调用一个组件都要本
机操作系统相对应的接口。因此具有很强的平台相关 性,所受限制较大,不能满足开发需要。 swing是对awt的扩展,Swing组件是用Java实现的轻量 级( light-weight)组件,(只有部分顶层容器是沿 用awt的重量级组件),不需要本地代码,不依赖操 作系统的支持,跨平台性好,具有很强的可定制性。

第08章 常用Swing组件

第08章 常用Swing组件
Java程序设计 第8章 常用Swing组件
8.1.1常用Swing组件的继承关系
ng.Object ponent java.awt.Container
javax.swing.JComponent javax.swing.JLabel javax.swing.JTextField javax.swing.JTextArea javax.swing.JPasswordField javax.swing.JList javax.swing.JComboBox
void setHorizontalAlignment(int alig) void setVerticalAlignment(int alig) void setHorizontalTextPosition(int tp) void setVerticalTextPosition (int tp) Java程序设计 第8章 常用Swing组件
Java程序设计 第8章 常用Swing组件
Swing组件的分类
4) 基本控件:实现人际交互的组件,如Jbutton, JComboBox, JList, JMenu, JSlider, JtextField 等
5) 不可编辑信息的显示:向用户显示不可编辑信 息的组件,例如JLabel, JProgressBar, JToolTip。
Java程序设计
第8章 常用Swing组件
JComponent类的功能(续)
4) 键盘导航:使用registerKeyboardAction( ) 方法,能使 用户用键盘代替鼠标来驱动组件。JComponent类的子类 AbstractButton还提供了setMnemonic( )方法指明一个 字符,通过这个字符和一个当前L&F的特殊修饰共同激活 按钮动作。

awt和swing组件的基本用法

awt和swing组件的基本用法

AWT和Swing都是Java中用于创建图形用户界面(GUI)的工具。

它们提供了一系列的组件和容器,可以用来创建和管理用户界面元素。

AWT(Abstract Window Toolkit)是Java提供的原始GUI工具包,它包含了许多用于创建GUI组件和容器的类。

Swing则是在AWT的基础上提供了一系列的增强功能和改进,包括更好的组件、更强大的布局管理器以及改进的事件处理等。

下面分别介绍AWT和Swing的一些基本组件和用法:AWT组件:1. 组件(Component):这是所有GUI组件的基类,包括按钮、标签、文本框等。

可以使用add()方法将组件添加到容器中。

2. 容器(Container):容器是一种特殊的组件,可以包含其他组件。

可以使用add()方法将组件添加到容器中。

3. 布局管理器(LayoutManager):布局管理器用于控制组件在容器中的布局方式。

AWT提供了几种布局管理器,如BorderLayout、FlowLayout、GridLayout等。

示例代码:```javaimport java.awt.*;import java.awt.event.*;public class MyAWTDemo {public static void main(String[] args) {Frame frame = new Frame(); // 创建一个Frame窗口frame.setTitle("JavaGUIComponent"); // 设置窗口标题 frame.setBounds(20, 30, 300, 280); // 设置窗口大小和位置frame.setVisible(true); // 设置窗口为可见Button button = new Button("Click me!"); // 创建一个按钮frame.add(button); // 将按钮添加到Frame窗口中frame.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件监听器public void windowClosing(WindowEvent e) {System.exit(0); // 关闭应用程序}});}}```Swing组件:1. JComponent:这是Swing中所有组件的基类,继承自AWT的Component类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JFrame是主窗口,它和JDialog,JApplet的地位并列。

但是,一个JFrame可以添加JDialog和JApplet进去它的内容面板,而反过来就不行。

2、JLabelJLabel是一标签,在它的文本里嵌入html标签,可以简单实现一个超链接组件3、JTextField一个文本框4、JTextArea文本区域,与文本框不同的是它是多行的5、JPasswordField6、JPanel一个面板.一般用作控制组件的布局.7、JCheckBox复选框8、JRadioButton单选按钮.单选按钮要用到ButtonGroup.添加到同一个ButtonGroup的单选按钮表示在它们之间只可选其一.不同ButtonGroup里的单选按钮相互之间的选择不受影响.9、JScrollPaneJScrollPane由四个角,两个头部,和一个视口组成.四个角和两个头部都是由Component组成.四个角并不是总是显示出来的.左上角只有当两个头部同时存在才显示,右下角只有两个滚动条同时出现才会出现.其他两个角可同理知道什么时候会出现.视口是显示内容的部分,由JViewport对象表示.而真正显示的内容,由JV iewport的view表示10、JListJList是一个列表.这里将首次引入Model这个概念,中文翻译是模型,不好理解,其实就是数据的意思.JList用ListModel保存它的数据.简单应用可以用实现了ListModel的AbstraceListModel的子类DefaultListModel来保存它的数据(尽管它的名字有Default,但是只有你使用了它创建JList,它才存在.即如果你没有用DefaultListModel创建JList,则你用getModel()返回的ListModel不能强制转换为DefaultListModel).11、JComboBox组合框和JList很相似,它们都是用ListModel来保存数据.默认它是使用实现了ListModel的子接口ComboBoxModel的DefaultComboBoxModel来保存数据的.与JList的情况不同,一个JComboBox总是有一个Model来保存数据的,而JList则不然.12、JFileChooserJFileChooser代表一个打开/保存文件对话框13、JColorChooser一个颜色选择器.它的构造方法有:JColorChooser(),JColorChooser(Color initialColor),JColorChooser(ColorSelectionModel model) 创建了对象以后,可以调用将它添加到JFrame,JPanel等其他容器里面.14、JSliderJSlider是一个滑动条.其实它还是比较容易使用的15、JLayeredPaneJFrame,JApplet,JDialog,JInternalFrame其实是由好几部分组成的16、JInternalFrameJFrame不能添加JFrame到自已的内容面板.那么,如何实现多文档程序呢?用JInternalFrame17、GlassPaneGlassPane可以用来截获输入事件(键盘和鼠标).没有JGlassPane可以调用JFrame的void setGlassPane(Component glassPane)来设置GlassPane默认GlassPane是不可见的,要调用getGlassPane().setV isible(true)使其可见18、JProgressBar进度条.当一个任务要较长时间来完成时,我们可以用一个进度条来表示任务的完成进度.在讲进度条的用法之前,我们先来看javax.swing.SwingWorker类的用法.我们将用这个类来模拟我们的"较长的任务19、JTabbedPane选项卡.构造方法:JTabbedPane() ,JTabbedPane(int tabPlacement) ,JTabbedPane(int tabPlacement, inttabLayoutPolicy)20、JFormattedTextField在讲JFormattedTextField之前,先讲用于指定格式的类:Locale,NumberFormat,DecimalFormat,DecimalFormatSymbols,DateFormat,SimpleDateFormat,DateFormatSymbols根据地区/语言(Locale)的不同,各种数字,日期的格式会有所不同.例如902333这个数字在德国会写作902.333,而在美国写作902,333创建Locale可以使用它的构造方法,也可以使用它的一些常量.例如下面两个语句是等价的: Locale locale1 = new Locale("zh","CN");Locale locale2 = Locale.CHINA;上面用到的"zh"(小写)和"CN"(大写)分别遵循着一定的规定,在下面的链接可以找到这些搭配:/pub/ietf/http/related/iso639.txthttp://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html你可以用任意的"xx"和"XX"搭配来创建Locale,但是,并不是所有都是有意义的,即Locale不一定可被上面的XXXFormat使用.使用下面的程序可以得到DateFormat可以使用的组合:21、JSpinner微调组件.微调组件由Editor,微调按钮,和它的Model组成.在构造JSpinner时,可以指定它的Model.swing提供了三个Model:SpinnerListModel,SpinnerNumberModel,SpinnerDateModel结构是SpinnerModel|_AbstractSpinnerModel|_SpinnerListModel,SpinnerNumberModel,SpinnerDateModel对应有三个Editor:JSpinner.ListEditor,JSpinner.NumberEditor,JSpinner.DateEditor,三个都是JSpinner.DefaultEditor的子类JSpinner.DefaultEditor|_JSpinner.ListEditor,JSpinner.NumberEditor,JSpinner.DateEditor可以看到,有很大的空间可以自定义一个JSpinner当你需要自定义它的Editor时,你可以用void setEditor(JComponent editor),也可以用JSpinner.DefaultEditor.getTextField()来取得JFormattedTextField,然后对这个JFormattedTextField来调用方法.可以通过addChangeListener对JSpinner值的改变作出反应.22、JTree这个组件太复杂了,只能很简单很简单地介绍一下.一树由根节点和子节点组成.它们都是由DefaultMutableTreeNode表示根节点是必须的,子节点可有可无.传给DefaultMutableTreeNode的构造方法的是一个Object.在构造JTree的时候,会调用这个Object的toString()取得显示在JTree上的节点的文本.调用void add(MutableTreeNode newChild)来增加一个子节点.在构造JTree时,将用DefaultMutableTreeNode表示的根传入构造方法JTree(TreeNode root) ,这样就可以构造一棵树.23、.Jtable 表格组件应网友要求,勉强加上JTable的用法讲述.写得不好,望不见怪没有比这个组件更复杂的了它由标题头和单元格组成.而单元格又分为编辑状态和非编辑状态.自定义JTable主要是对单元格作文章.默认的单元格是一个label,和JTree一样,如果你在创建JTable的时候传递的是其他对象而不是String对象,则该对象的toString方法将被调用.它返回的字符串就会显示在单元格的label里.同以往一样,可以通过”渲染器”将其他组件显示在单元格里;而编辑状态下的单元格默认是一个文本框.可以通过指定CellEditor来指定其他的组件作为编辑状态下单元格的组件(简称编辑器).你可以为某一种类型的数据指定一种编辑器,也可以为一整列的数据指定特定的编辑器.编辑器可以用作验证用户输入的合法性.对于渲染器和编辑器的概念,是和JTree里的相似的这个组件一般放在一个滚动窗格里.你可以把一个表格作为滚动窗格的viewport,然后再把滚动窗格添加到主框架的内容窗格(content pane)里.如果你不这样做,那么你必须分别把表格头和表格添加到框架窗口的content pane里.这个组件也是用所谓的模型来保存它的数据的.TableModel就是用来保存数据的.而它和JList 一样,用ListSelectionModel来保存选择了的项.另外它还有TableColumnModel来保存关于列的数据.下面几幅图总结了各部Model和Renderer的父子关系.下面是例子程序/*本程序演示了如何自定义自己的渲染器,自已的编辑器,和自己的数据模型其中渲染器使得数据是Color类型时显示一个带颜色的JLabel当数据是Color类型时编辑器是一个按钮,用以选择颜色*/24、Jtable 表格组件没有比这个组件更复杂的了它由标题头和单元格组成.而单元格又分为编辑状态和非编辑状态.自定义JTable主要是对单元格作文章.默认的单元格是一个label,和JTree一样,如果你在创建JTable的时候传递的是其他对象而不是String对象,则该对象的toString方法将被调用.它返回的字符串就会显示在单元格的label里.同以往一样,可以通过”渲染器”将其他组件显示在单元格里;而编辑状态下的单元格默认是一个文本框.可以通过指定CellEditor来指定其他的组件作为编辑状态下单元格的组件(简称编辑器).你可以为某一种类型的数据指定一种编辑器,也可以为一整列的数据指定特定的编辑器.编辑器可以用作验证用户输入的合法性.对于渲染器和编辑器的概念,是和JTree里的相似的这个组件一般放在一个滚动窗格里.你可以把一个表格作为滚动窗格的viewport,然后再把滚动窗格添加到主框架的内容窗格(content pane)里.如果你不这样做,那么你必须分别把表格头和表格添加到框架窗口的content pane里.这个组件也是用所谓的模型来保存它的数据的.TableModel就是用来保存数据的.而它和JList 一样,用ListSelectionModel来保存选择了的项.另外它还有TableColumnModel来保存关于列的数据.下面几幅图总结了各部Model和Renderer的父子关系.。

相关文档
最新文档