千家信息网

Swing组件有哪些

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章将为大家详细讲解有关Swing组件有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Swing包是JFC(Java Foundation Classes)
千家信息网最后更新 2025年01月20日Swing组件有哪些

这篇文章将为大家详细讲解有关Swing组件有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Swing包是JFC(Java Foundation Classes)的一部分,由许多包组成,如下表:

Com.sum.swing.plaf.motif用户界面代表类,它们实现Motif界面样式
Com.sum.java.swing.plaf.windows用户界面代表类,它们实现Windows界面样式
Javax.swingSwing组件和使用工具
Javax.swing.borderSwing轻量组件的边框
Javax.swing.colorchooserJcolorChooser的支持类/接口
Javax.swing.event事件和侦听器类
Javax.swing.filechooserJFileChooser的支持类/接口
Javax.swing.pending未完全实现的Swing组件
Javax.swing.plaf抽象类,定义UI代表的行为
Javax.swing.plaf.basic实现所有标准界面样式公共功能的基类
Javax.swing.plaf.metal用户界面代表类,它们实现Metal界面样式
Javax.swing.tableJtable组件
Javax.swing.text支持文档的显示和编辑
Javax.swing.text.html支持显示和编辑HTML文档
Javax.swing.text.html.parserHtml文档的分析器
Javax.swing.text.rtf支持显示和编辑RTF文件
Javax.swing.treeJtree组件的支持类
Javax.swing.undo支持取消操作

(在jdk1.3中,***、第二和pending包没有了,增加了plaf.multi包,主要功能:给缺省的L&F加上附加的L&F,例如一个MultiButtonUI实例可以同时处理MotifButtonUI和AudioButtonUI.)

Swing包是Swing提供的***包,它包含将近100个类和25个接口,几乎所有的Swing组件都在Swing包中,只有JtableHeader和JtextComponent是例外,它们分别在Swing.table和Swing.text中。
◆Swing.border包中定义了事件和事件监听器类,与AWT的event包类似。它们都包括事件类和监听器接口。
◆Swing.pending包包含了没有完全实现的Swing组件。
◆Swing.table包中主要包括了表格组建(JTable)的支持类。
◆Swing.tree同样是JTree的支持类。
◆Swing.text、Swing.text.html、Swing.text.html.parser和Swing.text.rtf都是用于显示和编辑文档的包。

Jcomponent是一个抽象类,用于定义所有子类组件的一般方法,但并不是所有的Swing组件都继承于JComponent类,JComponent类继承于Container类,所以凡是此类的组件都可作为容器使用。

组件从功能上分可分为:
1) 顶层容器:JFrame,JApplet,JDialog,JWindow共4个
2) 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar
3) 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.
4) 基本控件:实现人际交互的组件,如Jbutton, JComboBox, JList, JMenu, JSlider, JtextField。
5) 不可编辑信息的显示:向用户显示不可编辑信息的组件,例如JLabel, JProgressBar, ToolTip。
6) 可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如JColorChooser, JFileChoose, JFileChooser, Jtable, JtextArea。

使用Swing的基本规则
与AWT组件不同,Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。基本规则如下:
(1)把Swing组件放入一个顶层Swing容器的内容面板上
(2)避免使用非Swing的重量级组件。

对JFrame添加组件有两种方式:
1) 用getContentPane( )方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)
2) 建立一个Jpanel或 JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:
Jpanel contentPane=new Jpanel( );
……//把其它组件添加到Jpanel中;
frame.setContentPane(contentPane);
//把contentPane对象设置成为frame的内容面板

根面板

根面板由一个玻璃面板(glassPane)、一个内容面板(contentPane)和一个可选择的菜单条(JMenuBar)组成,而内容面板和可选择的菜单条放在同一分层。玻璃面板是完全透明的,缺省值为不可见,为接收鼠标事件和在所有组件上绘图提供方便。
根面板提供的方法:
Container getContentPane(); //获得内容面板
setContentPane(Container); //设置内容面
JMenuBar getMenuBar( ); //活动菜单条
setMenuBar(JMenuBar); //设置菜单条
JLayeredPane getLayeredPane(); //获得分层面板
setLayeredPane(JLayeredPane); //设置分层面板
Component getGlassPane(); //获得玻璃面板
setGlassPane(Component); //设置玻璃面板

分层面板(JLayeredPane)

Swing提供两种分层面板:JlayeredPane和JDesktopPane。 JDesktopPane是JLayeredPane的子类,专门为容纳内部框架(JInternalFrame)而设置。向一个分层面板种添加组件,需要说明将其加入哪一层,指明组件在该层中的位置:add(Component c, Integer Layer, int position)。

面板(JPanel)

面板(JPanel)是一个轻量容器组件,用法与Panel相同,用于容纳界面元素,以便在布局管理器的设置下可容纳更多的组件,实现容器的嵌套。Jpanel, JscrollPane, JsplitPane, JinteralFrame都属于常用的中间容器,是轻量组件。Jpanel的缺省布局管理器是FlowLayout。

滚动窗口(JScrollPane)

JscrollPane是带滚动条的面板,主要是通过移动JViewport(视口)来实现的。JViewport是一种特殊的对象,用于查看基层组件,滚动条实际就是沿着组件移动视口,同时描绘出它在下面"看到"的内容。

分隔板(JSplitPane)

JSplitPane提供可拆分窗口,支持水平拆分和垂直拆分并带有滑动条。常用方法有:
◆addImpl(Component comp,Object constraints,int index)//增加指定的组件
◆setTopComponent(Component comp) //设置顶部的组件
◆setDividerSize(int newSize) //设置拆分的大小
◆setUI(SplitPaneUI ui) //设置外观和感觉

选项板(JTabbedPane)

JTabbedPane提供一组可供用户选择的带有标签或图标的开关键。常用方法:
add(String title,Component component) //增加一个带特定标签的组件
addChangeListener(ChangeListener l) //选项板注册一个变化监听器

工具栏(JToolBar)

JtoolBar是用于显示常用工具控件的容器。用户可以拖拽出一个独立的可显示工具控件的窗口。
常用方法有:
JToolBar(String name) //构造方法
getComponentIndex(Component c) //返回一个组件的序号
getComponentAtIndex(int i) //得到一个指定序号的组件

内部框架(JInternalFrame)

内部框架JInternalFrame就如同一个窗口在另一个窗口内部,其特点如下:
1) 必须把内部框架添加到一个容器中(通常为JDesktopPane),否则不显示;
2) 不必调用show()或setVisible()方法,内部框架随所在的容器一起显示;
3) 必须用setSize()或pack()或setBounds方法设置框架尺寸,否则尺寸为零,框架不能显示;
4) 可以用setLocation()或setBounds( ) 方法设置内部框架在容器中的位置,缺省值为0,0,即容器的左上角;
5) 象顶层JFrame一样,对内部框架添加组件也要加在它的内容面板上;
6) 在内部框架中建立对话框,不能使用JDialog作为顶层窗口,必须用JOptionPane或JInternalFrame;
7) 内部框架不能监听窗口事件,可以通过监听与窗口事件类似的内部框架(JInternalFrameEvent)处理内部框架窗口的操作。
◆JFrame frame=new JFrame("InternalFrameDemo"); //实例化窗口
◆JDesktopPane desktop=new JDesktopPane(); //实例化容器JDesktopPane
◆MyInternalFrame myframe=new MyInternalFrame(); //实例化内部窗口
◆desktop.add(myframe); //把内部窗口添加到容器中
◆myframe.setSelected(true); //内部面板是可选择的
◆frame.setContentPane(desktop); //把desktop设为frame的内容面板

关于"Swing组件有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

组件 面板 容器 内容 框架 方法 支持 界面 事件 用户 顶层 常用 监听 代表 信息 实例 工具 接口 文档 样式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖州做软件开发 网络安全手抄报复杂又好 健康云 服务器错误 十二部门发布网络安全审查 我的世界服务器指南针 UG如何更改加工数据库 移动 通信软件开发 小学教师学习网络安全法心得体会 沛县专业性软件开发答疑解惑 审计局网络安全等级招标 数据库的安全性体现在 新浪nba数据库统计 松江区智能化软件开发厂家价格 u8账套备份只能在原服务器吗 用友决策管理设置服务器名称 怎样找腾讯服务器合作 怎样选择适合的服务器 微信朋友圈提示数据库有损坏 升级服务器什么意思 网络安全应急知识培训 c 获取连接数据库的ip 网页打开服务器连接不上 是信息网络技术发展的方向 网络安全风险防范措施计划书 数据库查询后合计 上海汇众网络技术有限公司 守望先锋怎么连接游戏服务器 上海常规网络技术定做价格 软件开发工程师哪里学好 aws中国服务器
0