(总结)Swing组件的使用
Swing的用法以及实例

Swing的用法以及实例使用swing时首先要导入一些相关的包:01//首先导入Swing 需要的包02 import javax.swing.*;03 import java.awt.*;04 import java.awt.event.*;05 //创建HelloWorld类06 public class HelloWorld {07 //创建主方法08 public static void main(String[] args) {09 try { //try语句块,监视该段程序10 //设置窗口风格11 UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());12 } catch (Exception e) { //捕获异常13 e.printStackTrace(); //异常信息输出14 }15 JFrame frame = new JFrame("Swing 第一个示例");//创建顶层容器并初始化16 Container c = frame.getContentPane(); //获取面板容器17 JPanel pane = new JPanel(); //创建面板panel 并初始化18 c.add(pane); //将面板添加到窗口19 pane.setLayout(new FlowLayout()); //设置布局管理器FlowLayout20 final JLabel label = new JLabel(); //创建标签label 并初始化21 JButton button = new JButton("按钮"); //创建button 并初始化22 pane.add(label); //向容器中添加组件label23 pane.add(button); //向容器中添加组件button24 //对按钮事件的处理方法25 button.addActionListener(new ActionListener() {26 public void actionPerformed(ActionEvent e) {27 label.setText("HelloWorld!"); //设置label 显示的内容28 }29 });30 //窗口设置结束,开始显示31 frame.addWindowListener(new Window32 //匿名类用于注册监听器33 public void windowClosing(WindowEvent e) {34 System.exit(0);} //程序退出35 });36 frame.setSize(300,240); //设置窗口大小37 frame.setVisible(true); //显示窗口38 }39 }以上程序中完全按照前面所介绍到的流程,首先是将Swing 所需要的包导入(第1~4 行,然后在主方法中创建顶层容器frame 并初始化(第15 行)。
(总结)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组件一

顶级容器组件
框架
– 方法2:编写窗口监听器类,在窗口关闭事
件中关闭程序,如下面的代码所示:
frame.setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE); frame. addWindowListener(new FrameDemoFrame_WindowListener_Closing(frame));
顶级容器组件
对话框
– showMessageDialog(显示消息框): – 消息框是最简单的一种对话框,它的作用只
是显示一条消息,它只有一个“确认”按钮, 用以关闭消息框。 – 通过修改showMessageDialog函数的参数, 可以修改消息框显示的消息、图标和消息框 的标题,下面列出常用的消息框形式
顶级容器组件
对话框
// 缺省标题和图标 JOptionPane.showMessageDialog(frame, "修改已经保存到文件中。");
// 自定义标题,错误图标 JOptionPane.showMessageDialog(frame, "修改已经保存到文件中。", "保存文件", JOptionPane.ERROR_MESSAGE);
顶级容器组件
对话框
– 对话框是另一类常用的顶级容器 – 对话框与框架非常相似,复杂的对话框也能
够实现框架的几乎所有功能 – 实际中,常用的是界面简单、功能高度特化 的对话框
消息框:显示一条消息 选择框:让用户进行选择 文件选择框:选择文件进行打开、保存等操作 颜色选择框:从调色板中选择颜色
顶级容器组件
有一个框架,小程序有时也会使用框架 – 框架是由边框、标题栏、最大化、最小化、 还原、移动、关闭按钮、系统菜单,以及内 容窗格组成 – 内容窗格是框架的核心区域,主要的图形界 面组件、菜单栏、工具栏都在内容窗格中
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。
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组件的各种面板(JRootPane根面板,JLayeredPane层面板等)

主要参考文现:[美]Herbert Schildt 著 鄢爱兰 鹿江春译 《java 参考大全 J2SE 》 清华大学出版社 2006年1月孙卫琴 《Java 面向对象编程》 出版社及日期不详java API 开发人员文档本文作者:黄邦勇帅本文的说明:本文主要讲解了对大学初学Swing 时对根面板JRootPane ,内容面板containPane ,层面板JLayeredPane ,玻璃面板glassPnae 的困惑,本文对各种面板作了详尽的讨论,让读者能真正的明白根面板,内容面板,层面板到底是什么,他们在程序中的作用,以及他们之间的关系,透明性,可见性,作了讲解。
本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。
Swing 组件的各种面板(JRootPane 根面板,JLayeredPane 层面板等)第一部分:JFrame 中各面板间的关系,透明性与可见性问题注:在某些地方把面板也叫做窗格,比如根面板,也叫根窗格,层面板也叫分层窗格等。
注意窗格与窗体是不一样的。
在Swing 中的JFrame 窗体与AWT 中的Frame 窗体有一些不同。
JFrame 由他的窗体本身加上其上的JRootPane 根面板,JLayeredPane 层面板,containPane 内容面板,glassPane 玻璃面板,JMenuBar 菜单栏(可选,不包括在内)四部分组成。
其中根面板在JRootPane 类中实现,层面板在JLayeredPane 类中实现,他们都是JComponent 的子类。
而containPane 和glassPane 没有专门对应的类。
1、各种面板(或称窗格)的关系及作用:JRootPane 根面板:该面板是在JFrame 窗体创建时就默认添加进来的,是所有其他面板的载体或父级,他覆盖窗体的除标题栏和边条之外的整个表面。
根面板默认是不可见的。
根面板负责管理其他面板(层面板,玻璃面板),如使其他面板覆盖整个JFrame 窗体等。
第11章 Swing组件

11.1 Swing组件介绍
第11章 Swing组件
Swing是AWT的扩展。 这些组件包括与AWT包中类似的按钮 JButton、复选框JCheckBox、标签JLable 、文本框JTextField和JTextArea等,选项板 JComboBox、单选按钮JRadioButton、树 JTree、表格JTable和工具栏JToolBar等。
图11-3 简易计算器
11.3 综合运用实例
问题实现: •该实例中定义MyCalculatorSwing类。
第11章 Swing组件
•首要工作是根据问题描述来设计界面,创建界面中所需的各种组件,这个工作 在构造方法中完成。 •第二项也是最重要的个工作就需要响应执行本程序时可能出现的各种按钮事件。 •按钮事件监听器接口中的抽象方法actionPerformed, ShowNum方法, equal方法。
第11章 Sw,JRadioButton单选项 组件
•【例11-2】多选项和单选项组件的应用。
11.3 综合运用实例
【实例11】
问题描述:
第11章 Swing组件
•计算器程序界面上的组件包括10个数字按钮(0~9)、 4个运算按钮(+、-、*、/)、1个清空按钮(C)、等号按钮(=) 和用于显示数值的文本框。 •使用该界面中的各个按钮以实现简单的四则运算功能。
第11章 Swing组件
第11章 Swing组件
第11章 Swing组件
11.1 Swing组件介绍 11.2 Swing常见组件的使用 11.3 综合运用实例
11.1 Swing组件介绍
• 软件包javax.swing。
第11章 Swing组件
• Swing组件,也被称之为“轻量级”( lightweight)组件。
java Swing(高级组件应用)

模版示例
菜单(JMenu)
Object Object Component Component Container Container JComponent JComponent
JMenuBar JMenuBar
JPopupMenu JPopupMenu
AbstractButton AbstractButton
树简单示例
总结
掌握Swing高级控件的基本用法
Swing控件的功能非常强大,需要学员们不断的在实 践中掌握其用法
�
菜单组件示例
工具栏(JToolBar)
工具栏组件用于将菜单中常用的项目直接展现给用户 工具栏一般置于菜单的下方并水平放置,可根据用户的需要设置可否 拖动 工具栏的构造方法
– JToolBar() 创建新的工具栏;默认的方向为 HORIZONTAL – JToolBar(int orientation) 创建具有指定 orientation 的新工具栏 – JToolBar(String name) 创建一个具有指定 name 的新工具栏 – JToolBar(String name, int orientation) 创建一个具有指定 name 和 orientation 的新工具栏
JSeparator JSeparator
JMenuItem JMenuItem JMenu JMenu
JCheckboxMenuItem JCheckboxMenuItem JRadioButtonMenuItem JRadioButtonMenuItem
JMenuBar
JMenuBar的作用是摆放菜单,当界面拥有很多的菜单时 必须通过JMenuBar加入到界面中 构造一个空的JMenuBar是没有意义的, JMenuBar中必 须要有菜单才可显示出来 使用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(总结)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 装饰(如边框、关闭窗口的小部件、标题等等)的提示。
JFrame.setDefaultLookAndFeelDecorated(true);// 创建一个窗体JFrame frame = new JFrame("小龙按钮");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E); // 创建一个面板JButtonExample3 newContentPane = new JButtonExample3();newContentPane.setOpaque(true);frame.setContentPane(newContentPane); // 显示窗体frame.pack();frame.setLocation(300, 200);frame.setVisible(true); } }运行截图:(说明:以下关于列表框内容部分出自此处:点击打开链接,特此声明!2.组合框(JComboBox):组合框(下拉列表JComboBox)使用方法及示例详解:构造方法:* JComboBox() 建立一个JComboBox组件.* JComboBox(ComboBoxModel model) 根据model建立一个JComboBox组件.* JComboBox(Objext[] items) 利用数组对象建立一个JComboBox组件.* JComboBox(Vector items) 利用Vector对象建立一个JComboBox组件.常用方法:....综合示例:[java] view plain copy print?<spanstyle="background-color: rgb(255, 255, 255);">import java.awt.*; /* 包含用于创建用户界面和绘制图形图像的所有类。
*/ import javax.swing.*; /* 提供一组"轻量级"组件,尽量让这些组件在所有平台上的工作方式都相同*/public class JComboBoxDemo extends JFrame{ public JComboBoxDemo() { /** Container是所有容器的父类,又是Java语言的组件类Component的子类. 容器是一种具有容纳其他组件和容器的功能的组件* 一个Java的图形用户界面的最基本元素是组件,组件是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,如一个按钮,一个文本框等.* 在Java中,通常将组件放在一定的容器内使用this.getContentPane()方法返回此窗体的contentPane 对象*/ Container contentPane =this.getContentPane(); /* 创建一个面板对象,指定布局管理器为GridLayout,1行2列.Jpanel的默认版面管理为FlowLayout */ JPanel jPanel1 = new JPanel(new GridLayout(1, 2)); // 利用String数组建立JComboBox String[] fruit = { "苹果", "香蕉", "桔子", "梨", "芒果" };JComboBox jComboBox1 = new JComboBox(fruit); jComboBox1.addItem("其他"); // 在列表框选项的最后再添加一个"其他"选项// 设置jList1对象的带标题边框jComboBox1.setBorder(BorderFactory.createTitledBorder( "您最喜欢的水果:")); // 添加列表框jComboBox1至面板jPanel1.add(jComboBox1);// 利用ComboBoxModel建立JComboBox ComboBoxModel myModel = new MyModel(); JComboBox jComboBox2 = new JComboBox(myModel); // 设置jList1对象的带标题边框jComboBox2.setBorder(BorderFactory.createTitledBorder( "您最喜欢的水果:")); // 添加列表框jComboBox2至面板jPanel1.add(jComboBox2);// 添加面板至父容器contentPane.add(jPanel1); // 设置本窗体的标题this.setTitle("JComboBoxDemo"); // 设置本窗体显示的初始大小this.setSize(350, 90);this.setLocation(300, 200); // 设置本窗体初始可见this.setVisible(true); } class MyModel extends DefaultComboBoxModel{ String[] fruit = { "苹果", "香蕉", "桔子", "梨", "芒果" }; MyModel() { for (int i = 0;i < fruit.length; i++) { /* addElement()方法用于向列表框添加选项元素*/this.addElement(fruit[i]); } }} public static void main(String args[]){ JComboBoxDemo test = new JComboBoxDemo(); } }</span> 截图:3.列表框(JList):列表框的功能与下拉列表框相似,也是让用户在几个条目中做出选择,但又有一些区别,它提供给用户的选择模式更为多样,分别是单一选择、连续选择、多项选择,对应于ListSelectionModel 中的3个常量:(1) static int SINGLE_SELECTION 只能选择一条。