java swing常用的9种组件.

合集下载

第11章 Swing组件

第11章  Swing组件

11.4 Swing高级组件
除了基本组件之外,Swing还提供了很多高级组件,以 帮助程序员创建更加复杂但更加有表现力的应用程序。这些 高级组件包括可以交互式显示高度格式化信息的组件,如颜 色选择器、表和树等,也包括非顶层的容器组件和具有特殊 用途的窗口组件。
11.4.1 颜色选择器JColorChooser
11.3.2 进度条组件JProgressBar
进度条(JProgressBar):可用值范围构建 JProgressBar,用setValue和setString更改进度和文字,用 setStringPainted显示文字;进度条可能是不确定的,等到可 以确定时用setIndeterminate变回来(适合于复杂控制、多 进度条、重用的场合);高级进度监视器ProgressMonitor ,用parent、title、note和min、max构建,用setProgress和 setNote更新状态,isCanceled判断是否取消, setMillisToPopup显示延迟时间(适合于简单提示、易于取 消的场合);另外还有ProgressMonitorInputStream包装流 ,如果读取费时超过延迟时间会显示进度框。有时,在一个 程序中运行的任务可能会持续一些时间才能完成。用户友好 的程序应该对用户一些提示,以说明任务可能需要多长时间 ,Swing提供了JprogressBar用来显示总任务已经完成了多 少。
11.2.7 滑块组件JSlider
滑块(JSlider):有水平或垂直样式,有大小标尺及 标签,使用ChangeListener(当getValueIsAdjusting为假时 ),用setLabelTable(HashTable<Integer,JLabel>)自定义标 签,或使用createStandardLabels创建等距标签,通常滑块 和JFormattedTextField配对而精确定位数值( NumberFormatter(NumberFormat.getIntegerInstance())) 。Jslider是一个让用户以图形方式在有界区间内通过移动滑 块来选择值的组件。滑块可以显示主刻度标记和次刻度标记 。

Swing类组件大全

Swing类组件大全

Swing类组件大全
==几个重要的类-==
JComponent 类,所有以下组件的父类
JFrame类,创建窗体
JApplet类,创建小型应用程序(好像是适配器吧)
==窗口组件===
JButton ,Jlabel, JCheckBox 可以直接添加Icon图片,Jlist不可直接添加
JLabel标签
JButton 按钮监视器addActionListener()
JList滚动列表监视器addItemListener()和addActionListener() JTxtFiled文本框监视器addActionListener()
JPasswordFiled密码框监视器addActionListener()
JTxtArea文本域监视器addTextListener()
JCheckBox复选框监视器addItemListener()
JComboBox下拉列表监视器addItemListener()
单选按钮组,把单选钮添加到一个单选组里,那么这些单选钮只有一个能被选上
ButtonGroup l=new ButtonGroup();
JRadioButton q=new JRadioButton("fsd",true);
l.add(q);
c.add(q);
JTable表格
JFileChooser文件选择器
JProgressBar进度条
JMenuBar菜单栏
JMenu条JMenuItem项JToolBar工具条
JTree树
===中间容器==== JPanel面板JScrollPane滚动窗格JSplitPane拆分窗格JInternalFrame内部窗体。

八、Swing组件

八、Swing组件
复选框和单选按钮菜单项复选框和单选按钮菜单项在文本旁边显示了一个复选框或单选按钮当用户进行选择时菜单项自动在选择和未选择间切换除了有按钮装饰以外其他处理与菜单项一样menutest3java弹出菜单popupmenu弹出菜单是一种不固定在菜单栏中随处浮动的菜单弹出菜单与固定菜单大体相同但是没有标题menutest4javajpopupmenupopupnewjpopupmenu
• 文本域可接收单行文本输入。
JPanel panel = new JPanel(); JTextField textField = new JTextField("Default input", 20); //JTextField textField = new JTextField(20); panel.add(textField);
– void setEditable(boolean aFlag)
• 当用户从组合框中选择一个选项时,触发一个 ActionEvent事件。 • ComboBoxTest.java
滑块JSlider
• 滑块允许进行连续值的选择,例如,选择1~100 中的一个数值。
JSlider slider = new JSlider(min, max, initialValue);
网格布局管理器
• 网格布局与电子表格类似,按行列排列所 有的组件,每个单元大小都一样。 • 在网格布局对象的构造器中,需要指定行 数和列数。
panel.setLayout(new GridLayout(5, 4)); or panel.setLayout(new GridLayout(5, 4, 3, 3));
• 添加组件顺序:第1行第1列,第1行第2 列… • Calculator.java

java swing常用的9种组件

java swing常用的9种组件

在Java1.0中,已经有一个用于GUI编程的类库AWT(Abstract Window Toolkit),称之为抽象窗口工具箱。

遗憾的是,AWT中的组件(例如按钮,类名为Button)在实现中使用了本地代码(Native Code),这些组件的创建和行为是由应用程序所在平台上的本地GUI工具来处理的。

因此,AWT组件要在不同的平台上提供给用户一致的行为就受到了很大的限制。

同时,AWT组件中还存在很多bug,这就使得使用AWT来开发跨平台的GUI应用程序困难重重。

1996年,SUN公司和Netsacpe公司在一个称为Swing的项目中合作完善了Netsacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。

Swing组件和原来的AWT组件完全不同,最大的区别就是Swing组件的实现中没有使用本地代码,这样对底层平台的依赖型就大为降低,并且可以给不同平台的用户一致的感觉。

此外,和原来的AWT相比,Swing 中提供了内容更多、使用更为方便的组件。

在阅读一些书籍时,常会遇到名词JFC(Java Foundation Class)。

JFC的概念是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。

实际上,Swing只是JFC的一部分,其它的还有二维图形(Java 2D)API以及拖放(Drag and Drop)API等等。

Swing并不是完全取代了AWT,Swing只是使用更好的GUI组件(如JButton)代替AWT 中相应的GUI组件(如Button),并且增加了一些AWT中原来所没有的GUI组件。

并且,Swing 仍使用AWT 1.1的事件处理模型。

虽然现在AWT组件仍得到支持,但是建议在你的应用程序中尽量使用Swing组件和1.1的事件模型。

1.标签(JLabel)标签(JLabel)通常是用来标识另外一个组件的含义。

以在标签上显示文字、图象或是文字图象的组合。

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组件总结认识

swing组件总结认识

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的父子关系.。

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组件及其用法

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组件

JTabbedPane类的构造方法有: 类的构造方法有: 类的构造方法有 JTabbedPane() 创 建 空 对 象 , 该 对 象 具 有 缺 省 的 标 签 位 置 JTabbedPane.TOP 和缺省的布局策略JTabbedPane.WRAP_TAB_LAYOUT。 。 和缺省的布局策略 JTabbedPane(int tabPlacement)创建空对象,该对象具有指定 创建空对象, 创建空对象 的标签位置:JTabbedPane.TOP、JTabbedPane.BOTTOM、 的标签位置: 、 、 JTabbedPane.LEFT 或 JTabbedPane.RIGHT 以 及 缺 省 的 布 局策略JTabbedPane.WRAP_TAB_LAYOUT。 局策略 。 JTabbedPane(int tabPlacement, int tabLayoutPolicy)创建空对 创建空对 象 , 该对象具有指定的标签位置和布局策略。 布局策略可 该对象具有指定的标签位置和布局策略 。 以是以下两种之一: 以是以下两种之一 : JTabbedPane.WRAP_TAB_LAYOUT 或 JTabbedPane.SCROLL_TAB_LAYOUT。加滚动条 。
javax.swing.JPane 类继承于 类继承于javax.swing.JComponent 类 , 其构 造 其 构造 方法有: 方法有: JPanel() 创建具有缺省 创建具有缺省FlowLayout布局的 布局的JPanel对象。 对象。 布局的 对象 JPanel(LayoutManager layout) 创 建 具 有 指 定 布 局 管 理 器 的 JPanel对象。 对象。 对象 作为画布的绘画区域使用时, 将JPanel作为画布的绘画区域使用时, 要使用下面的两个步骤 : 作为画布的绘画区域使用时 要使用下面的两个步骤: 首先,设置画布绘图区域的大小;其次,使 用 paintComponent()方法 ( 不是 方法( 方法) 方法 不是paint()方法) 来绘图 , 在该方法 方法 来绘图, 体中, 首先调用方法super.paintComponent( ) 来清除显示区 体中 , 首先调用方法 ( 域。

第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的特殊修饰共同激活 按钮动作。

java Swing 用户界面组件

java Swing 用户界面组件

第9章 Swing 用户界面组件
9.2 布局管理概述
n
9/50
边界布局(BorderLayout)
n
边界布局将容器划分为五个区域
n
上(北)、下(南)、左(西)、右(东)、中央
n n n n
JFrame容器的默认布局为边界布局 West和East区的宽度不变 North和South区的高度不变 Center区自动填充其他区域
n
n
n
按钮属性
n
text、icon、mnemonic(快捷键) horizontalAlignment、verticalAlignment horizontalTextPosition、verticalTextPosition
n
n
第9章 Swing 用户界面组件
9.4 简单组件
n
20/50
按钮(JButton)
9.2 布局管理概述
n
14/50
构造网格布局管理器
n
public GridLayout(int rows,int columns)
n
根据指定的行数和列数构造一个GirdLayout对象
n
public GridLayout(int rows, int columns, int hGap, int vGap)
2/50
第9章 Swing 用户界面组件
第9章 Swing 用户界面组件
&本章重点 n 9.2 布局管理概述 n 9.4 简单组件 n 9.5 文本输入 &本章难点 n 9.7 菜单 n 9.8 对话框
3/50
第9章 Swing 用户界面组件
9.1 用户界面组件简介
n

Swing 图形用户界面中常用的组件

Swing 图形用户界面中常用的组件

9.1.1JApplet由于所有的Swing GUI组件都应该包含在JApplet小程序中,且javax.Swing.JApplet是java.applet.Applet的子类,所以本章主要介绍javax.Swing的“J组件”,应用程序均以JApplet小程序为例。

JApplet的使用与Applet小程序相似,它们与HTML文件的配合没有什么差别,差别仅在默认布局策略与个别方法的使用上,这将在讲述到有关内容时加以讨论。

9.1.2 Swing中常用的包由于Swing功能相当强大且复杂,考虑到功能分解的原则,Java系统将Swing按不同功能分为表9.1所示的若干个包,它们分别针对于不同的组件及事件。

表9.1 Swing中常用的包包名说明javax.swing 最常用的包,包含了各种Swing组件的类javax.swing.border 包含与Swing组件外框有关的类javax.swing.colorchooser 针对Swing调色版组件(JColorChooser)设计的类javax.swing.event 处理由Swing组件产生的事件javax.swing.filechooser 包含针对Swing文件选择对话框(JFileChooser)所设计的类javax.swing.plaf 处理Swing组件外观的相关类javax.swing.table 针对Swing组件表格(JTable)所设计的类javax.swing.text包含与Swing文字组件相关的类javax.swing.text.htmljavax.swing.text.html.parserjavax.swing.text.rtfjavax.swing.tree 针对Swing树状元素(JTree)所设计的类javax.swing.undo 提供Swing文字组件的Redo与Undo功能表9.1 Swing中常用的包9.1.3常用组件的继承关系由于本章所述组件所使用的成员方法主要是继承其直接父类或更高层父类的成员方法,为了正确地使用这些组件,有必要了解每个组件的继承关系。

JavaGUI编程与Swing库

JavaGUI编程与Swing库

JavaGUI编程与Swing库Java是一种功能强大的编程语言,被广泛用于开发各种应用程序。

GUI(图形用户界面)是一种用户通过图形方式与计算机进行交互的界面。

Java 提供了丰富的GUI编程工具,其中最常用的就是Swing库。

本文将深入探讨JavaGUI编程与Swing库的相关知识。

一、Swing库概述Swing是Java中的一个GUI工具包,提供了一系列的组件和容器来构建各种类型的窗口和用户界面。

Swing库的优点在于其跨平台性能,可以在不同操作系统上运行,并且提供了丰富的可自定义组件。

Swing库使用面向对象的设计模式,易于学习和使用。

二、Swing组件1. JFrame类JFrame是Swing库中最常用的顶层容器组件,用于创建窗口。

可以通过JFrame类的构造方法和方法设置窗口的大小、标题、布局等属性。

2. JPanel类JPanel是Swing库中的一个容器组件,用于放置其他组件。

可以通过JPanel类的构造方法和方法设置面板的布局、背景颜色等属性。

3. JButton类JButton是Swing库中的一个常用按钮组件,用于触发特定的操作。

可以通过JButton类的构造方法和方法设置按钮的文本、图标、事件监听等属性。

4. JLabel类JLabel是Swing库中的一个标签组件,用于显示文本或图像。

可以通过JLabel类的构造方法和方法设置标签的文本、图像、字体等属性。

5. JTextField类JTextField是Swing库中的一个文本框组件,用于接收用户的输入。

可以通过JTextField类的构造方法和方法设置文本框的大小、内容、是否可编辑等属性。

6. JCheckBox类JCheckBox是Swing库中的一个复选框组件,用于提供多个选项供用户选择。

可以通过JCheckBox类的构造方法和方法设置复选框的文本、选中状态等属性。

7. JRadioButton类JRadioButton是Swing库中的一个单选按钮组件,用于提供多个选项供用户选择,但只能选择一个。

Swing组件大全

Swing组件大全

一抛砖引玉本文指在利用一个小程序”Swing 组件大全”来引导大家学习Java这门语言,熟悉Ja va Swing的各个组件。

并在学习过程中参考作者设计这一程序的方法和思想,最终形成自己的思维方式和学习方式。

你能举一返三是作者最开心的事情。

小程序演示了Java Swing 大部分组件。

最后附上了全部代码及详细的注释说明。

希望本文能对大家学习Java有所帮助。

随着Java风潮席卷国内,学习Java的方法和路径越来越多。

而在大量的书本前,在J ava庞大的类库前大大家都有点迷失方向的感觉,是学J2EE,J2ME还是。

然而所有的这些都或多或少的离不开J2SE。

万丈高楼平地起。

J2SE是整个Java的基础,学好了这个对Java的各个方向都是很有利的。

而学习J2SE的最初点就在界面设计,因为界面编程是你来感觉最直接的手段,是提高大家编程兴趣的很好开始,因为你写完程序编译后可马上看到自己的成果。

而不像后台编程做完了都感受不到效果。

而好的界面也是你测试你其他程序的基础。

界面设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是一些拖拉操作,由于Java语言的设计中所有的东西都是程序代码,在Java中如果想要设计一个好的界面,可不是简单的拖拉操作能完成的。

即使使用了如JBuilder这么强大的可视化工具,你也得亲自动手写一些界面设计代码才能很好的完成你的任务。

如果你能在此基础上理解Java界面设计的思想,对你学习这门语言将有莫大的帮助。

Java界面设计主要涉及Awt,Swing两大类库,Swing是Awt的扩展和功能加强。

下面我们就以Swing为基础来说说整个Java的界面设计。

二感受效果在开始之前,让我们看看这篇文章要达到的效果,有了目标和成果才有学习的兴趣,起码我是这样认为和学习的。

如下图所示,这就是我们设计的界面,它包括了Swing中大部分常用的组件。

有些功能界面上反映不出来,大家可尝试编译源代码点南击各个部分,看看它们的响应事件。

第2章 Swing基本组件(上)

第2章  Swing基本组件(上)

java.awt包
java.awt包是Java内置的包,属于Java基础类库(JFC)的一部分, 其中包括以下内容:
1. 2. 3. 4. 便于用户输入的一组丰富的界面组件; 将组件放置在适当位置的几种布局管理器; 事件处理模型; 图形和图像工具等等。
要使用到该包中的类,则必须显式地声明如下语句: import java.awt.*;
JDialog的构造方法
JDialog类的构造方法共有11种重载,以下是常用的几种: 构 造 方 法
JDialog()


创建一个没有标题并且没有指定所有者的无模式对话框 创建一个没有标题但将指定的owner作为其所有者的无模 式对话框 创建一个没有标题但有指定所有者的对话框,根据参数 modal来决定它是否模式显示 创建一个具有指定标题和指定所有者的无模式对话框 创建一个有指定标题和指定所有者的对话框,参数modal 决定它是否模式显示 创建一个没有标题但有指定所有者的对话框,根据参数 modal来决定它是否模式显示
常 Color.BLACK Color.CYAN Color.GRAY
量 黑色 青色 灰色


常 Color.BLUE
量 蓝色


Color.DARK_GRAY Color.GREEN Color.MAGENTA Color.PINK Color.WHITE
深灰色 绿色 洋红色 粉红色 白色
Color.LIGHT_GRAY Color.ORANGE Color.RED Color.YELLOW


设置容器的背景色,由参数bg指定颜色 设置容器的布局,参数是布局管理器 往容器中添加一个组件 将指定组件添加到容器中的指定位置上 从容器中移除指定的组件 从容器中移除所有组件 重新绘制当前容器
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

需要注意的是,取得文本框中的文本时,使用方法getText(),该方法返回的是一个String类型的对象;而要取得密码框中的文本,使用方法getPassword(),该方法返回的是一个char数组。

例如,创建了一个密码框:JPasswordField txtPwd=new JPasswrodField(20);设定该密码框的回显字符为'#':txtPwd.setEchoChar('#');取得密码框中的内容:char []pwd=txtPwd.getPassword();也可以方便地将char数组转化为String类型的对象:String pwdStr=new String(txtP.getPassword());3.菜单(1)菜单也是一种常用的GUI组件,菜单采用的是一种层次结构,最顶层是菜单栏(JMenuBar);在菜单栏中可以添加若干个菜单(JMenu),每个菜单中又可以添加若干个菜单选项(JMenuItem)、分隔线(Separator)或是菜单(称之为子菜单)。

(2)构建应用程序的菜单时,先创建一个菜单栏:JMemuBar menuBar=new JMenuBar();通常使用框架的setJMenuBar(JMenuBar aMenuBar)方法将菜单栏置于框架中:frame.setJMenuBar(menuBar);随后,创建所需要的各菜单并逐个添加到菜单栏中,例如:JMenu menuDBAccount=new JMenu("电表出帐(C)");...JMenu menuSysConfig=new JMenu("系统设置(X)");menuBar.add(menuDBAccount);...menuBar.add(menuSysConfig);最后,向各个菜单中添加菜单选项、分隔线或是子菜单,如图所示的系统设置菜单为例://创建菜单选项或是子菜单JMenuItem sysConfigItem=new JMenuItem("参数设置(S)...");JMenu viewMenu=new JMenu("外观设置");JRadioButtonMenuItem metalItem=new JRadioButtonMenuItem("金属外观");JRadioButtonMenuItem classicItem=new JRadioButtonMenuItem("传统外观");JRadioButtonMenuItem modernItem=new JRadioButtonMenuItem("现代外观");JMenuItem cascadeItem=new JMenuItem("层叠窗口(C)");JMenuItem iconifyItem=new JMenuItem("排列图标(I)");//将三个单选按钮添加到一个按钮组ButtonGroup group=new ButtonGroup();group.add(metalItem);group.add(classicItem);group.add(modernItem);//构建子菜单viewMenu.add(metalItem);viewMenu.add(classicItem);viewMenu.add(modernItem);//添加到系统设置菜单menuSysConfig.add(sysConfigItem); //添加菜单选项menuSysConfig.add(viewMenu); //添加子菜单menuSysConfig.add(cascadeItem); //添加菜单选项menuSysConfig.addSeaparator(); //添加分隔线menuSysConfig.add(iconifyItem); //添加菜单选项(3)通常的菜单选项是JMenuItem,也可以使用复选框或是单选按钮类型的菜单选项,分别是JCheckBoxMenuItem和JRadioButtonMenuItem。

和JRadioButton一样,使用JRadioButtonMenuItem时,需要将它们添加到同一个按钮组中。

(4)当点击一个菜单选项时,会生成一个动作事件(ActionEvent) 。

为菜单选项添加事件侦听器就可以侦听其动作事件,例如:sysConfigItem.addActionListener(aListener);(5)为一个菜单或是菜单选项设置快捷键:menuSysConfig.setMnemonic('X');sysConfigItem.setMnemonic('S');(6)如果需要快速选择未打开的菜单中的菜单选项或是子菜单,可以使用加速键。

例如,当希望按下CTRL+L时就立刻选中lockItem菜单选项,而不管lockItem所在的菜单是否已经打开,就可以使用下面的方法为lockItem设置加速键:KeyStroke ks=KeyStroke.getKeyStroke( KeyEvent.VK_L,InputEvent.CTRL_MASK);lockItem.setAccelerator(ks);4.弹出式菜单(1)弹出式菜单(JPopupMenu)是一种特殊的菜单,和普通菜单的区别在于其不固定在菜单栏中,而是可以四处浮动的。

(2)下面的语句创建了一个弹出式菜单:JPopupMenu popup=new JPopupMenu();与向菜单中添加菜单选项、分隔线或是子菜单一样,使用同样的方法向弹出式菜单中添加内容。

用户可以通过点击某个特殊的鼠标键(称为触发器)来触发弹出式菜单。

例如,在Windows操作系统上,一般是鼠标右键。

为此,应用程序中应该监听弹出式菜单的父组件的鼠标事件:当有鼠标事件发生时,使用isPopupTrigger()方法来判断是否为弹出式菜单的触发器;如果是,则在该父组件上显示出弹出式菜单。

同样以图所示意的弹出式菜单为例,该菜单的父组件是一个显示公司徽标的标签labLogo,当用户在该标签上右击鼠标时,弹出式菜单出现。

下面的代码实现了上述功能:labLogo.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e){if (e.isPopupTrigger()){popup.show(labLogo,e.getX(), e.getY());}}});5.工具条(1)有些菜单选项的使用频率较高,每次使用都要打开菜单,效率较低。

为此,可以在工具条(JToolBar)中提供与这些菜单选项相对应快捷按钮,以提高用户的效率。

工具条中通常是一些带有图标的按钮,当然也可以是其它类型的GUI组件,例如组合框等等。

(2)通常,工具条所提供的操作是菜单所能提供操作的一个子集,目的是能够快速访问那些使用频率高的操作。

(3)工具条通常被置于布局为BorderLayout的容器中。

工具条被置于布局为BorderLayout的一个面板中。

工具条还有一个特点:可以被拖动到所在容器其它边界,甚至脱离其所在的容器。

(4)生成一个工具条对象,可以使用语句:JToolBar toolbar=new JToolBar();(5)还可以在生成工具条时,指明工具条的标题。

这样,当工具条脱离所在容器时,可以在自己的标题栏显示标题:JToolBar toolbar=new JToolBar("颜色工具条");(6)向工具条中添加组件,使用add方法:toolbar.add(btnBlue);toolbar.add(btnYellow);(7)缺省情况下,组件是按照水平方式逐个添加入工具条的,也可以在生成工具条时指明以垂直方式来添加组件:JToolBar toolbar=new JToolBar(SwingConstants.VERTICAL);(8)如果希望工具条不能移动,可以使用setFloatable方法来设置:toolbar.setFloatable(false);(9)当工具条中的按钮上只显示图标时,用户可能不能确切知道各个按钮的具体含义。

可以使用工具提示解决这个问题:btnYellow.setToolTipText("面板置为黄色");6.对话框(1)对话框是用户和应用程序进行交互(对话)的一个桥梁:对话框可以用于收集用户的输入数据传递给应用程序,或是显示应用程序的运行信息给用户。

(2)对话框分为模式(modal)和非模式两种。

模式对话框处于可见状态时,用户将不能与应用程序的其它窗口进行交互,而非模式对话框则没有此限制。

(3)Java中提供了一个类JOptionPane用于创建简单的模式对话框,如果希望创建非模式对话框或是自定义对话框可以使用JDialog。

(4)JOptionPane类中提供了4种静态方法,用以显示4种常用的对话框:showMessageDialog 消息对话框showInputDialog 输入对话框showConfirmDialog 确认对话框showOptionDialog 选项对话框(5)JOptionPane 对话框主要由如下几个部分构成:图标、消息以及按钮。

(6)类JOptionPane中定义了如下五个常量:JOptionPane.QUESTION_MESSAGERMATION_MESSAGEJOptionPane.WARNING_MESSAGEJOptionPane.ERROR_MESSAGEJOptionPane.PLAIN_MESSAGE //不使用图标前四个常量对应着四个图标,第五个常量表示不使用图标。

开发人员可以使用这些常量来指定对话框中显示的图标。

当然,对话框也提供了方法使得开发人员可以使用自己的图标。

(7)JOptionPane对话框不仅仅可以显示字符串类型的消息,还可以显示其它类型的消息。

例如,可以是一副图片、还可以是一个GUI组件。

更广泛地说,这里的消息可以是任何类型的对象或是对象数组。

在书上的例子中,你可以看到不同类型消息的应用。

(8)JOptionPane对话框底部的按钮取决于对话框类型和选项类型。

例如,对于确认对话框,可以使用如下的四种选项类型之一:DEFAULT_ OPTIONYES_NO_OPTIONYES_NO_CANCEL_OPTIONOK_CANCEL_OPTION(9)如果设计一个包括两个标签、一个文本输入框、一个密码输入框和两个按钮的登录对话框,这些GUI组件被添加到一个使用了网格袋布局的面板panel中,面板panel 又被添加到LoginDialog的内容窗格。

相关文档
最新文档