日志二:GUI编程及文件对话框的使用



【目的】
1. 了解文件对话框的使用方法,熟悉GUI中事件驱动的核心步骤。
2. 了解GUI的图像显示的常用方式。
3. 完成实验六的内容。
 

【目标】
项目一:文件及选择
项目二:图片显示
项目三:实验六 图形用户界面


【方法与步骤】
1. 了解文件对话框的使用方法,熟悉GUI中事件驱动的核心步骤。
JFileChooser类中常用的构造方法:
JFileChooser()                                           构造一个指向用户默认目录的 JFileChooser。
JFileChooser(File currentDirectory)                      使用给定的 File 作为路径来构造一个 JFileChooser。
setFileSelectionMode(int mode)设置 JFileChooser,        以允许用户只选择文件、只选择目录,或者可选择文件和目录。
mode参数:
FILES_AND_DIRECTORIES                                    指示显示文件和目录。
FILES_ONLY                                               指示仅显示文件。
DIRECTORIES_ONLY                                         指示仅显示目录。
showDialog(Component parent,String approveButtonText)    弹出具有自定义 approve 按钮的自定义文件选择器对话框。
showOpenDialog(Component parent)                         弹出一个 "Open File" 文件选择器对话框。          
showSaveDialog(Component parent)                         弹出一个 "Save File" 文件选择器对话框。      
setMultiSelectionEnabled(boolean b)                      设置文件选择器,以允许选择多个文件。         
getSelectedFiles()                                       如果将文件选择器设置为允许选择多个文件,则返回选中文件的列表(File[])。
getSelectedFile()                                        返回选中的文件。
老师介绍的一篇博文:http://blog.csdn.net/liang5630/article/details/25651491,上面有“JFileChooser (Java Swing提供的文件选择对话框)”,的一些方法。


2. GUI事件模式驱动的步骤:
1)新建一个组件(如JButton)。
2)将该组件添加到相应的面板(如JPanel)。
3)注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。
4)定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。      


3. GUI的图像显示的常用方式
   image = ImageIO.read(file);                               //读入图像到image
   void setIcon(Icon image)                                  //定义JLable将要显示的图标
  

4. 结合JFileChooser进行简单编程
     老师给了我们一些代码,老师要求我们修改这些代码,实现以下功能。打开文件,实现显示下面的画面。我刚开始不理解老师的用意,一直不懂那个JFileChooser的使用,因为做“猜猜看”的游戏,需要用到这个功能,我开始研究,我就去理解了一下以下的代码,实现了打开文件,选择文件的功能。我慢慢的理解了JFileChooser选择文件,选择目录的路径要求。


 
【实验代码】

package com.mxl.swing;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JFileChooser; 

public class JFileChooserTest {

	public static final int APPROVE_OPTION = 0;
	private JLabel label=new JLabel("所选文件路径");
	private JTextField jtf=new JTextField(25);
	private JButton button=new JButton("浏览");

	public JFileChooserTest(){
		JFrame jf=new JFrame("Java GUI");
		JPanel panel=new JPanel();
		panel.add(label);
		panel.add(jtf);
		panel.add(button);
		jf.add(panel);
		jf.pack();
		jf.setVisible(true);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JFileChooser fc=new JFileChooser("E:\\");
				int val=fc.showOpenDialog(null);
				//.showDialog(new JLabel(), "选择"); 
				if(val==fc.APPROVE_OPTION){
					jtf.setText(fc.getSelectedFile().toString());
				}else{
					jtf.setText("未选择文件");
				}
			}
		});	
	}
}


【实验结果】


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值