第六章Swing用户界面组件 布局管理介绍 文本输入 选择组件 菜单 对话框.

Slides:



Advertisements
Similar presentations
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
Advertisements

第9章 图形用户界面(GUI)设计 软 件 学 院 朱士明副教授
JAVA程序设计 天津工程职业技术学院计算机工程系软件技术教研室.
图形界面设计 福州大学阳光学院 张海歆.
项目2 字符格式和段落编排 2017年3月7日6时54分.
P2P文件共享系统 制作人:李洁顺 指导教师:杨淑萍 张 霞.
Java程序设计 常州信息职业技术学院(CCIT) 软件学院
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
視窗程式設計 2. 視窗版面配置 Chih Hung Wang Reference:
6.5 图形界面的布局设计 每一个容器组件都有一个默认的布局管理方式,也可以用setLayout方法来设置其他布局管理器。一旦确定了布局管理方式,容器组件就可以用add方法加入组件。 布局管理器用来确定组件在容器中的位置和大小,AWT中定义了布局管理器接口LayoutManager的实现类来实现此功能。
第七章 图形用户界面的设计与实现 学习导读 首先,我们学习一些基本的图形编程知识,包括窗口的显示及外观设置、在窗口中显示文字和图像等;
4.1 概述 4.2 AWT 与 Swing组件 4.3 事件处理 4.4 容器与布局管理器 4.5 对话框 4.6 菜单
第 18 章 圖形使用者介面.
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
在PHP和MYSQL中实现完美的中文显示
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之一).
第九章 字符串.
Java语言程序设计 马 皓
第9章 图形用户界面(GUI)设计.
Ch02 視窗Swing套件 物件導向系統實務.
Java语言程序设计-图形用户界面设计(2)
2018/11/11 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
问题 Jdbc连接数据库 下载数据库的驱动 Sql server 在微软的网站上可以下载 Sqlserver for jdbc driver
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Java语言程序设计 第六部分 Java图形用户界面.
第六章 窗口系统和用户界面管理系统 山东大学计算机学院.
第十一章   Swing II.
SWING 2018/11/23.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
視窗程式設計 10. 組合方塊與對話盒 Chih Hung Wang Reference:
Java程序设计 第15章 创建用户界面.
記事本 物件導向系統實務.
JAVA语言程序设计 第十一章 图形用户界面
第九章 窗口、菜单和对话框 本章的任务: 介绍图形用户界面的高级组件。这些组件包括窗口、菜单和对话框等,它们可以构造出标准GUI应用程序。最后,简要介绍Java Swing的使用方法。
記事本 物件導向系統實務.
JAVA 2 新觀念教本 ---邁向SCJP專業認證--- 易瓏資訊 林新德 著.
走进编程 程序的顺序结构(二).
辅导课程六.
Java程序设计 第12章 图形用户界面设计入门.
Ch04 事件處理 物件導向系統實務.
CH03 為自己的視窗加上小元件 物件導向系統實務.
P2P文件共享系统 制作人:李洁顺 指导教师:杨淑萍 张 霞.
CH04 視窗中元件排排坐 物件導向系統實務.
第10章 高级用户界面设计 10.1 菜单设计 10.2 通用对话框 10.3 图像列表框控件 10.4 树形视图控件
POWERPOINT TEMPLATE HI.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
PRESENTED BY OfficePLUS
事件處理.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第十章 基于Swing的图形用户界面设计.
SOA – Experiment 2: Query Classification Web Service
Multithread 多執行緒 以GUI為例了解物件以及Event
JAVA 编 程 技 术 主编 贾振华 2010年1月.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
产品推广 PRODUCT PROMOTION PRESENTED BY OfficePLUS.
4.5 对话框.
PRESENTED BY OfficePLUS
组件 复选框(Checkbox)可以让用户进行多项选择。复选框有两种状态,分别为“开(on)”和“关(off)”。当用户点中复选框的时候,复选框的状态就会改变。 1、创建复选框 (1)声明复选框。 Checkbox mycheckbox =new Checkbox (); (2)添加复选框。将复选框组件放置到容器中。
项目二:HTML语言基础.
iSIGHT 基本培训 使用 Excel的栅栏问题
4.4 布局管理器.
第十二章 JFC/Swing 概述  Swing组件  Swing应用程序结构  JComponent类.
VRP教程 2011.
Delphi 7.0开发示例.
Python 环境搭建 基于Anaconda和VSCode.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
YOUR SUBTITLE GOES HERE
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
Presentation transcript:

第六章Swing用户界面组件 布局管理介绍 文本输入 选择组件 菜单 对话框

6.1布局管理器 一.组件设置过程 定义组件 例:JButton redButton=new JButton(“red”); 添加到面板中 例:add(redButton); 为组件设置监听器 例:redButton.addActionListener(listener); 组件多时怎么办?

二.布局管理器 Java采用布局管理器对放置在容器内的组件实行动态管理 Java支持四种布局    FlowLayout BorderLayout GridLayout CardLayout

1. Flow Layout 组件按照加入的先后顺序从左向右排列 一行排满之后就转到下一行继续从左向右排列 每一行中的组件都居中排列 FlowLayout是Panel和Applet型容器的默认使用布局

自左向右、居中排列

构造新布局 定义流布局管理方法 FlowLayout(int align)根据指定的对齐方 式来构造一个新FlowLayout 参数:align:LEFT、CENTER、RIGHT FlowLayout(int align,int hgap,vgap)根据指定对齐方式来构造新的FlowLayout hgap:新水平距离 vgap:新垂直距离

设置布局管理 setLayout(LayoutManager m) 例:FlowLayout m=new FlowLayout(); setLayout(m); 或:setLayout(new FlowLayout);

2. Border Layout 它把容器的空间分为:       东、西、南、北、中 在BorderLayout类中用EAST、WEST、SOUTH、NORTH、CENTER常量来表示上述划分,以决定组件的安放位置

BorderLayout.NORTH BorderLayout.WEST BorderLayout.EAST BorderLayout.CENTER BorderLayout.SOURTH

例:下面为将两个按钮放在容器上部和下部的代码: JButton button1,button2; setLayout(new BorderLayout()); button1=new JButton(“北”); button2=new JButton(“南”); add(button1,BorderLayout.NORTH); add(button2,BorderLayout.SOUTH);

符号表示 BorderLayout常量被定义为字符串 例:BorderLayout.SOUTH被定义为字符串:South 上例应用时可写为: add(button1,“North”); add(button2,“South”);

3。GridLayout 把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中 可用方法setLayout来设置网格布局 setLayout(new GridLayout(行数、列数)) setLayout(new GridLayout(3,4));

CardLayout的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,就象一叠“扑克牌”每次只能显示最上面的一张

三.面板 1.存在的问题: 2.解决方法: 创建一个面板,先将组件添加到面板上, 再将面板添加到更大的容器里.代码如下: Container containPane=getContentPane(); JPanel panel=new JPanel(); panel.add(Compoment c); containPane.add(panel, “Sourth”);

6.2常用组件 1.文本输入 文本域、文本区、标签… 2.选择组件 复选框、单选按钮… 3.菜单 弹出菜单、下拉菜单… 4.对话框 选择对话框、文件对话框…

6.2.1文本输入--TextTest.java 用于文本输入的组件: 文本域:用于进行单行文本输入输出, 其对应的类为:JTextField 文本区:可以接受多行文本输入,其对应 的类为JTextArea API:void setText(String t) string getText() void setEditable(boolean b)

1.文本域 构造方法 JTextField()--文本域的长度为一个字符 JTextField(int x)--文本域的长度为X个字符 JTextField(String s)--文本域的初始字符          串为S JTextField(String s,int x)--文本域的初始 字符串为S,长度为X个字符

添加文本域 把一个文本域添加到一个窗口的通常办法是把它添加到一个面板或其它容器中 代码: JPanel panel=new JPanel(); JTextField textField=new JTextField(“文本域输入”20); panel.add(textField);

改变文本域的大小 列不是一个精确的测量单位,一列就是一个字符在当前使用的字体下的宽度 可用setColumn(int x)方法改变列的大小 textField.setColumn(10); 调用setColumn()方法后需要调用所在容器的validate方法,重新计算组件大小 panel.validate();

textField.getDocument(). addDocumentListener(listener) 安装文档监听器 textField.getDocument(). addDocumentListener(listener) 文档接口DocumentListener中含有三个方法:      void insertUpdate(DocumentEvent e) void removeUpdate(DocumentEvent e) void changeUpdate(DocumentEvent e) 当文本发生改变后,上面三个方法中的一个会被调用. 例:一个文本域的例子TextTest.java

DocumentListener listener = new ClockFieldListener(); //定义文本监听器 DocumentListener listener = new ClockFieldListener(); JPanel panel = new JPanel(); //定义文本域、注册监听器 hourField = new JTextField("12", 3); panel.add(hourField); hourField.getDocument().addDocumentListener(listener); minuteField = new JTextField("00", 3); panel.add(minuteField); minuteField.getDocument().addDocumentListener(listener);

//将文本框中的字符串转换为数字 { try { int hours = Integer.parseInt(            hourField.getText().trim()); int minutes = Integer.parseInt(           minuteField.getText().trim()); clock.setTime(hours, minutes); }

//监听器类 private class ClockFieldListener implements DocumentListener { public void insertUpdate(DocumentEvent e) {         setClock(); } public void removeUpdate(DocumentEvent e) {     setClock(); } public void changedUpdate(DocumentEvent e) {} }

2.文本区--TextAreaTest.java 构造方法: JTextArea(int rows,int cols) JTextArea(String text,int rows,int cols) 改变文本区大小: setColumn(int cols) setRows(int rows) 追加文本 append(String newText)

JScrollPane(componemt c) 打开或关闭换行 setLineWrap(boolean word) 滚动窗格 JScrollPane(componemt c) 若使用滚动条,必须把文本区插入到一个滚动窗格中,然后再把滚动窗格插入到内容窗格中.代码如下: textArea=new JTextArea(8,40); JScrollPane scrollPane=new JScrollPanel(textArea); contentPane.add(scrollPane, “ Center”);

textArea.setLineWrap(true); 处理超长文本 textArea.setLineWrap(true); 例:TextAreaTest

//设置控制滚动条的按纽   wrapButton = new JButton("换行"); buttonPanel.add(wrapButton); wrapButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { boolean wrap = !textArea.getLineWrap(); textArea.setLineWrap(wrap); scrollPane.validate(); wrapButton.setText(wrap ? “不换行” : “换行”);     } });

contentPane.add(buttonPanel, BorderLayout.SOUTH); textArea = new JTextArea(8, 40); scrollPane = new JScrollPane(textArea); contentPane.add(scrollPane,            BorderLayout.CENTER); }

3.标签和标签组 标签是容纳文本的组件 常用来标识别的组件 构造方法: JLabel(String text) JLabel(Icon icon) JLabel(String text,int align) JLabel(String text,Icon,icon,int align)

参数说明: text:标签中的文本 icon:标签中的图标 align: SwingConstant. LEFT SwingConstant.RIGHT SwingConstant.CENTER void setText(String text) void setIcon(Icon icon)

6.2.2选择组件 包括:  复选框 单选按钮 选项列表 滑块

1.复选框--CheckBoxTest.java 构造复选框 JCheckBox bold=new JCheckBox(“bold”); 用setSelected()方法来选定一个复选框以及取消选定 bold.setSelected(true) 提取复选框当前状态 bold.isSelected()

添加监听器 ActionListener listener=…… bold.addActionListener(listener) 监听器的接口方法为:   actionPerformed() 例:CheckBoxTest.java

//定义复选 框监听器类 ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent event) { int mode = 0; if (bold.isSelected()) mode += Font.BOLD; if (italic.isSelected()) mode += Font.ITALIC; label.setFont(new Font("Serif", mode, FONTSIZE)); } };

bold = new JCheckBox("Bold"); bold.addActionListener(listener); //定义复选框、注册监听器 bold = new JCheckBox("Bold"); bold.addActionListener(listener); buttonPanel.add(bold); italic = new JCheckBox("Italic"); italic.addActionListener(listener); buttonPanel.add(italic);

2.单选按钮--RadioButtonTest.java A.构造单选按钮 JRadioButton smallButton=new JRadioButton(“small”,false); B.把单选按钮加入面板中 Panel.add(smallButton); C.构造按钮组: ButtonGroup group=new ButtonGroup(); D.把JRadioButton类型对象添加到该按钮组 group.add(smallButton);

API: Javax.swing.JRadioButton JRadioButton(String lable,boolean state) JRadioButton(String lable,Icon icon) Javax.swing.ButtonGroup Void add(AbstractButton b)`` ButtonGroup() 例:RadioButtonTest.java

//构造单选按纽和按纽组 buttonPanel = new JPanel(); group = new ButtonGroup(); addRadioButton("Small", 8 ); addRadioButton("Medium", 12 ); addRadioButton("Large", 18 ); addRadioButton("Extra large", 36 );

public void addRadioButton(String name, final int size ) { boolean selected =( size == DEFAULT_SIZE;) JRadioButton button = new JRadioButton(name, selected); group.add(button); // 将单选按纽加到单选按纽组 buttonPanel.add(button); //为单选按纽注册监听器 ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent evt) { label.setFont(new Font("Serif", Font.PLAIN, size));} }; button.addActionListener(listener); }

除文字外,单选按钮、复选框也可以作菜单项 6.2.3菜单 菜单 菜单栏 除文字外,单选按钮、复选框也可以作菜单项 菜单项 步骤: 框架 菜单栏 菜单 菜单项

一.菜单创建过程 创建菜单栏 JMenuBar menuBar=new JMenuBar(); 框架中添加菜单栏 frame.setJMenuBar(menuBar); 创建菜单 JMenu editmenu=new JMenu(“Edit”); 把菜单加入菜单栏中 menuBar.addMenu(editmenu);

创建菜单项: JMenuItem cutItem=new JMenuItem(“Cut ”); 向菜单中添加菜单项 editmenu.add(cutItem); 添加子菜单 JMenu optionsmenu=new JMenu(“Options”); editmenu.add(optionsmenu)

二.安装菜单项监听器 当用户选择一个菜单时,一个动作事件就会被触发,你需要为每一个菜单项安装一个动作监听器 ActionListener listener=…..; cutItem.addActionListener(listener);

Add(“Paste”)相当于item=new JMenuItem(“Paste”)和editMenu.add(item)的作用 添加监听器 JMenu.add(String s)是一个很方便的方法,它可以把一个菜单项添加到菜单的结尾     editMenu.add(“paste”); add()返回创建的子菜单项,因此可以捕获它的返回值并添加监听器 JMenuItem pItem=editMenu.add(“Paste”); pItem.addActionListener(listener);

常用方法 JMenuBar()创建一个菜单栏 JMenu(String label)创建一个菜单 JMenuItem(String label)创建一个菜单项 void addSeparator()添加一个分隔行 JMenuItem insert(JMenuItem,int index) 把一个菜单项添加到菜单的指定位置 void insertSeparator(int index)把一个分隔符添加到菜单的指定位置 void remove(JMenuItem item)      删除指定菜单项

三.菜单项中的图标 可以通过JMenuItem(String,Icon)或者JMenuItem(Icon)来为菜单指定一个图标,或用JMenuItem类中的setIcon方法来设定图标。 API: Javax.swing.JMenuItem JMenuItem(String s,Icon icon) 例如: JMenuItem cutItem=new JMenuItem( “cut”,new ImageIcon(“cut.gif”)

四.复选框菜单项 创建一个复选框菜单项 JCheckBoxMenuItem readonlyItem=new JCheckBoxMenuItem(“read-only”); 将复选框菜单项添加菜单中 optionsMenu.add(readonlyItem);

五.单选按钮菜单项 同常规按钮一样,先将其添入按钮组 ButtonGroup group=new ButtonGroup(); JRadioButtonMenuItem insertItem=new JRadioButtonMenuItem (“insert”); insertItem.setSelected(true); JRadioButtonMenuItem overtypeItem=new JRadioButtonMenuItem (“overtype”); group.add(insertItem); group.add(OvertypeItem);

optionsMenu.add(insertItem); optionsMenu.add(OvertypeItem); 将单选按钮菜单项添加菜单中 optionsMenu.add(insertItem); optionsMenu.add(OvertypeItem);

是一种并非固定在菜单栏中,而是可随处浮动的菜单 六.弹出菜单 是一种并非固定在菜单栏中,而是可随处浮动的菜单 创建弹出菜单 JPopupMenu popup=new JPopupMenu(); 添加菜单项 JMenuItem item=new JMenuItem(“cut”); item.addActionListener(listener); popup.add(item);

弹出式菜单并不总显示在窗口顶部,必须用show方法显示 show(Component c,int x,int y); 例:popup.show(Panel,x,y); show方法常常放在一个事件监听器方法中,当事件发生时,显示弹出式菜单 这个事件通常为鼠标右键,就是弹出触发器。 使用触发器步骤如下: 1。安装鼠标监听器 2。在鼠标监听器中添加如下代码:

例:MenuTest.java public void mouseReleased(MouseEvent event) { if(event.isPopupTrigger()) popup.show(event.getComponent(), event.getx(),event.gety()); } 常用API: Javax.swing.JPopupMenu Void show(Componemt c,int x,int y) c:弹出菜单在其内显示的位置 Boolean isPopupTrigger() Java.awt.event.MouseEvent 如果该鼠标事件是弹出菜单触发器,则返回 true 例:MenuTest.java

class MenuFrame extends JFrame { public MenuFrame() setTitle("MenuTest"); setSize(WIDTH, HEIGHT); JMenu fileMenu = new JMenu("File"); JMenuItem newItem = fileMenu.add(new TestAction("New"));

JMenuItem openItem = fileMenu.add(new TestAction("Open")); openItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_O, InputEvent.CTRL_MASK)); fileMenu.addSeparator(); saveItem = fileMenu.add(new TestAction("Save")); saveItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_S, InputEvent.CTRL_MASK)); saveAsItem = fileMenu.add(new TestAction("Save As")); fileMenu.add(new AbstractAction("Exit") { public void actionPerformed(ActionEvent event) {System.exit(0); });

readonlyItem = new JCheckBoxMenuItem("Read-only"); ButtonGroup group = new ButtonGroup(); JRadioButtonMenuItem insertItem = new JRadioButtonMenuItem("Insert"); insertItem.setSelected(true); JRadioButtonMenuItem overtypeItem = new JRadioButtonMenuItem("Overtype"); group.add(insertItem); group.add(overtypeItem);

Action cutAction = new TestAction("Cut"); cutAction.putValue(Action.SMALL_ICON, new ImageIcon("cut.gif")); Action copyAction = new TestAction("Copy"); copyAction.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif")); Action pasteAction = new TestAction("Paste"); pasteAction.putValue(Action.SMALL_ICON, new ImageIcon("paste.gif")); JMenu editMenu = new JMenu("Edit"); editMenu.add(cutAction); editMenu.add(copyAction); editMenu.add(pasteAction);

popup = new JPopupMenu(); popup.add(cutAction); popup.add(copyAction); popup.add(pasteAction); getContentPane().addMouseListener(new MouseAdapter() {public void mouseReleased(MouseEvent event) {if (event.isPopupTrigger()) popup.show(event.getComponent(), event.getX(), event.getY()); } });

class TestAction extends AbstractAction { public TestAction(String name) { super(name); } public void actionPerformed(ActionEvent event) System.out.println(getValue(Action.NAME) + " selected."); }

七.快捷键和加速器 API: Javax.swing.JMenuItem JmenuItem(String lable,int mnemonic) void setAccelerator(keyStoke k) javax.swing.AbstractButton void setMnemonic(char mnemonic)

设置菜单项快捷键 JmenuItem cutItem=new JmenItem(“Cut”,’t’); 设置菜单快捷键 JMenu helpMenu =new JMenu(“Help”); helpMenu.setMnemonic(‘H’); 设置加速器 openitem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_O, InputEvent.CTRL_MASK));

6.2.4 对话框 对话框分为: 模式对话框:其特征是在处理完对话框之前不能同应用程序主窗口进行交互。如:文件模式对话框 无模式对话框:允许用户同时在对话框和程序剩余部分中输入信息。如:工具栏 常见对话框:选项对话框、文件对话框、颜色选择器、工具栏、数据交换等

一.选项对话框 Swing中的JOptionPane类提供了一些简单对话框用于收集用户的信息。 JOptionPane类有四个静态方法来显示这些对话框: showMessageDialog showConfirmDialog showOptionDialog showInputDialog

几个常用API: showMessageDialog( Component parent, Object message, String title, int messageType, Icon icon);

showConfirmDialog( Component parent, Object message, String title, int optionType, int messageType, Icon icon);

showOptionDialog( Component parent, Object message, String title, int optionType, int messageType, Icon icon, Object[] option, Object default);

showInputDialog( Component parent, Object message, String title, int messageType, Icon icon, Object[] option, Object default);

例:显示一条信息并让用户确认或取消。代码如下: int selection=JOptionPane. ShowConfirmDialog(parent,“message”, “Title”,JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE); if(selection==JOption.OK_OPTION….. 例:OptionDialogTest.java

Swing提供了一个 JFileChooser类可以用来显示一个文件对话框 showOpenDialog用来显示一个用于打开文件的对话框 二.文件对话框 Swing提供了一个 JFileChooser类可以用来显示一个文件对话框 showOpenDialog用来显示一个用于打开文件的对话框 showSaveDialog用来显示一个用于保存文件的对话框 使用对话框的步骤 1.创建一个JFileChooser对象 JFileChooser chooser=new JFileChooser(); 2.通过调用setCurrentDirectory方法来设置当前目录 chooser.setCurrentDirectory(new File(“.”));

3.使用setSelected提供一个用户使用的默认文件名 chooser.setSelectionFile(new File(filename)); 4.如果允许用户选择多个文件,需调用setMultiselectionEnabled()方法 chooser.setMultiselectionEnabled(true); 5。可使用setFileselectedMode()方法,通过参数设置确定选择对象 参数取值: JFileChooser.FILES_ONLY JFileChooser.DIRECTORIES_ONLY JFileChooser.FILE_AND_DIRECTORIES

6.调用showOpenDialog或showSaveDialog来显示对话框,必须为这两个方法提供父组件 int result=chooser.showOpenDialog(parent) int result=chooser.showSaveDialog(parent) 7.使用getSelectFile()或者getSelectFiles()来得到一个或多个文件。 若只需获得文件对象的名字,可用getPath()方法 String filename= chooser.getselectedFile().getPath() ; 例:FileChooserTest.java

为了实现一个自己的对话框,需要派生一个JDialog类的子类,步骤如下: 三.创建对话框 为了实现一个自己的对话框,需要派生一个JDialog类的子类,步骤如下: 1.在对话框构造器中,调用基类JDialog的构造器 2.添加该对话框的用户界面组件 class AboutDialog extends JDialog { public AboutDialog(JFrame owner) { super(owner, "About DialogTest", true); 3添加事件处理器 JButton ok = new JButton("Ok"); JPanel panel = new JPanel(); panel.add(ok); 4设置对话框的大小 ok.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent evt) { setVisible(false); } contentPane.add(panel, BorderLayout.SOUTH); setSize(250, 150);

若要显示对话框,就要创建一个实例,并调用show() Jdialog dialog=new AboutDialog(this) dialog.show 例:DialogTest.java