第一部分:实验项目 

项目一:文件及选择

目的:了解文件对话框的用法,熟悉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. [BZOJ2683]简单题/[BZOJ1176][BalkanOI2007]Mokia

    [BZOJ2683]简单题 题目大意: 一个\(n\times n(n\le5\times10^5)\)的矩阵,初始时每个格子里的数全为\(0\).\(m(m\le2\times10^5)\)次操作, ...

  2. Spring AOP笔记

    AOP的核心概念 AOP(Aspect-Oriented Programming)面向切面编程可以实现横切点与他们所影响的对象之间的解耦.如将公共的日志.权限.事务等业务隔离出来,但不影响原来程序的逻 ...

  3. PHP代码为什么不能直接保存HTML文件——>PHP生成静态页面教程

    1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件 ...

  4. hdu 2732 最大流 **

    题意:题目是说一个n*m的迷宫中,有每个格子有柱子.柱子高度为0~3,高度为0的柱子是不能站的(高度为0就是没有柱子)在一些有柱子的格子上有一些蜥蜴,一次最多跳距离d,相邻格子的距离是1,只要跳出迷宫 ...

  5. Mac OS下不产生.DS_Store 隐藏文件和清理.DS_Store的方法

    一.清理.DS_Store的方法 1. 打开终端 (Macintosh HD > Applications > Utilities > Terminal)2. 输入命令: " ...

  6. 在EntityFramework6中管理DbContext的正确方式——3环境上下文DbContext vs 显式DbContext vs 注入DbContext(外文翻译)

    (译者注:使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gu ...

  7. Java基础加强总结(二)——泛型

    一.体验泛型 JDK1.5之前的集合类中存在的问题——可以往集合中加入任意类型的对象,例如下面代码: package cn.gacl.generic.summary; import java.util ...

  8. datagrid在MVC中的运用10-勾选

    本文体验与勾选有关的特性. 需要加载的books.json 展开{ "total": 4, "rows": [ { "productid": ...

  9. MVC二级联动使用$.ajax方法获取后端返回的字符串

    在"MVC二级联动使用$.getJSON方法"中使用$.getJSON()获取后端返回的JSon. 本篇使用jQuery的$.ajax()获取后端返回的字符串,实现二级联动.   ...

  10. JAVA自定义注解SpringAOP

    原文:https://my.oschina.net/wangnian/blog/801348 前言:Annotation(注解)是JDK5.0及以后版本引入的,它的作用就是负责注解其他注解.现在开发过 ...