Swing组件有哪些
这篇文章将为大家详细讲解有关Swing组件有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
开原ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
Swing包是JFC(Java Foundation Classes)的一部分,由许多包组成,如下表:
Com.sum.swing.plaf.motif | 用户界面代表类,它们实现Motif界面样式 |
Com.sum.java.swing.plaf.windows | 用户界面代表类,它们实现Windows界面样式 |
Javax.swing | Swing组件和使用工具 |
Javax.swing.border | Swing轻量组件的边框 |
Javax.swing.colorchooser | JcolorChooser的支持类/接口 |
Javax.swing.event | 事件和侦听器类 |
Javax.swing.filechooser | JFileChooser的支持类/接口 |
Javax.swing.pending | 未完全实现的Swing组件 |
Javax.swing.plaf | 抽象类,定义UI代表的行为 |
Javax.swing.plaf.basic | 实现所有标准界面样式公共功能的基类 |
Javax.swing.plaf.metal | 用户界面代表类,它们实现Metal界面样式 |
Javax.swing.table | Jtable组件 |
Javax.swing.text | 支持文档的显示和编辑 |
Javax.swing.text.html | 支持显示和编辑HTML文档 |
Javax.swing.text.html.parser | Html文档的分析器 |
Javax.swing.text.rtf | 支持显示和编辑RTF文件 |
Javax.swing.tree | Jtree组件的支持类 |
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组件有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
标题名称:Swing组件有哪些
网站URL:http://pwwzsj.com/article/jpgohd.html