第一部分:实验项目 

项目一:文件及选择

目的:了解文件对话框的用法,熟悉GUI中事件驱动的核心步骤。
1. 阅读博文 “JFileChooser
(Java Swing提供的文件选择对话框)
”,了解博文大意。

2. 在IDE中输入(非复制、粘贴)博文中的代码。调试并执行。
3. 在上述界面中。添加例如以下控件:
    JLabel,显示文本为“所选文件or目录:”。
    JTextField。当选择了文件or目录后,显示所选择的文件or目录。

4. 完毕上述功能。

注意:
1. 掌握GUI中经常使用的布局方式。对上述程序,设置布局为FlowLayout,或BorderLayout(參考教材P138-144)。
2.了解在线查看Java某个控件、类的使用方式,比較中英文文档的差异。当中site:XXX 表示在指定的网址搜索。
    中文:百度中搜索“site:apihome.cn java
api XXX ”,如“site:apihome.cn java api JTextField”
    英文:百度中搜索“site:docs.oracle.com java api XXX ”。如“site:docs.oracle.com java
api JTextField”
3. 总结Java 事件驱动的工作原理。參考并改写教材的例6-1(P115-116),把applet改写为JFrame。

4. 为什么须要“敲”代码?见博文  to全部BBS的同学:如何才是学习的好方法?转《笨方法学Python》笨方法更简单
package com.liang;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class FileChooser extends JFrame implements ActionListener{
JButton open=null;
JTextField jtfPath = null; public static void main(String[] args) {
new FileChooser();
}
public FileChooser(){
this.setLayout(new FlowLayout());
// JLabel picture = new JLabel("pictureURL");
// add( picture);
// button初始化
open=new JButton("open");
// 加入监听
open.addActionListener(this);
// 把button加入到JFrame容器中
this.add(open); // 加入文本框控件
jtfPath = new JTextField("选择的文件",40);
jtfPath.setEditable(false); // 不可编辑
jtfPath.setHorizontalAlignment(JTextField.CENTER); // 居中
this.add(jtfPath); // 设置JFrame的大小,可显示。默认关闭button
this.setBounds(400, 200, 700, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser jfc=new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
jfc.showDialog(new JLabel(), "选择");
File file=jfc.getSelectedFile(); if(file.isDirectory()){
System.out.println("目录:"+file.getAbsolutePath()); }else if(file.isFile()){
System.out.println("文件:"+file.getAbsolutePath());
}
System.out.println(jfc.getSelectedFile().getName()); // 把文件路径显示在文本框中
jtfPath.setText(file.getAbsolutePath());
}
}


《Java程序设计》第16周周四:GUI编程及文件对话框的使用的更多相关文章

  1. Java程序设计 第16周 课堂实践 —— 数据库4

    Java程序设计 第16周 课堂实践 -- 数据库4 课堂实践任务4 查询world数据库,查询哪个国家的平均寿命最长. 代码分析 实现查询数据库需要我们修改Message.java,MessageD ...

  2. Java程序设计 第16周 课堂实践 —— 数据库3

    Java程序设计 第16周 课堂实践 -- 数据库3 课堂实践任务3 查询world数据库,获得New Jessey州所有城市的总人口数. 代码分析 实现查询数据库需要我们修改MessageDAO.j ...

  3. Java程序设计 第16周 课堂实践

    Java程序设计 第16周 课堂实践 -- 数据库2 课堂实践任务2 查询world数据库,获得人口超过500万的所有城市的列表. 代码分析 实现查询数据库需要我们修改Message.java,Mes ...

  4. GUI编程及文件对话框的使用

    import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import ...

  5. 2018面向对象程序设计(Java)第16周学习指导及要求

    2018面向对象程序设计(Java)第16周学习指导及要求(2018.12.13-2018.12.16)   学习目标 (1) 掌握线程概念: (2) 掌握线程创建的两种技术: (3) 理解和掌握线程 ...

  6. 2019面向对象程序设计(Java) 第16周学习指导及要求

    2019面向对象程序设计(Java)第16周学习指导及要求 (2019.12.13-2019.12.16) 学习目标 (1) 掌握Java应用程序的打包操作: (2) 掌握线程概念: (3) 掌握线程 ...

  7. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  8. 20165235 祁瑛 2018-4 《Java程序设计》第九周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端 ...

  9. 20175314 《Java程序设计》第二周学习总结

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

随机推荐

  1. N!(N的阶乘)最末位非0的求解方法

    问题是求关于N!的最后一位非0位, 如3!=6,最后一位非0位为6, 5!=120, 最后一位非0位为2.怎么样快速的求出最后一位非0位呢? 最朴素的想法就是先求出N!的结果,再求出结果的最后一位非0 ...

  2. Codeforces Beta Round #97 (Div. 1) A. Replacement 水题

    A. Replacement 题目连接: http://codeforces.com/contest/135/problem/A Description Little Petya very much ...

  3. bestcoder#23 1001 Sequence

    Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  4. configure: error: lzo enabled but missing

    注意:yum安装的无效,需要手动下载源码安装. wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz tar zx ...

  5. BeeProg2C Extremely fast universal USB interfaced programmer

    http://www.elnec.com/products/universal-programmers/beeprog2c/ FPGA based totally reconfigurable 48  ...

  6. jquery实现回车键触发事件

    键盘事件有3: keydown,keypress,keyup,分别是按下,按着没上抬,上抬键盘 . 正确代码为: $(document).keyup(function(event){ if(event ...

  7. QT 安装 4.8.7 on solaris 10

    1.  下载 QT 4.8.7: http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4 ...

  8. Spring初始化完成后直接执行一个方法,初始化数据(解决方法被重复执行两次的情况)

    在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听.Servlet加载初始化等切入点为数据库准备数据,这些初始化数据 是系统开始运行前必须的数据,例如权限组.系统选项.默认管理员等等.但是项 ...

  9. IOS中为tableViewCell增加右侧标记(选中或者更多)

    if ([self.selectWys containsObject:[self.initCitys objectAtIndex:indexPath.row]]) { tvCell.accessory ...

  10. Announcing Mobile SDK V2.0

    As you might have read over at our PayPal Forward Blog it’s time to celebrate for PayPal | Developer ...