Java窗体组件操作文件读与写

Java窗体组件操作文件读与写

开发工具与关键技术:java
作者:陈希雄
撰写时间:2019/5/1

用窗体组件来操作文件的读与写,先看下面的代码吧!
先创建一个类来继承Jframe窗体类


public class Files extends JFrame {
	public Files() {
       //文字大小
		Font font=new Font(null, 20, 16);
		//标题
		setTitle("文件操作小程序");
		setLayout(null);
		setBounds(200, 200, 800, 450);//窗体位置
		//按钮
		JButton b1=new JButton("读取文件");
		JButton b2=new JButton("写入文件");
		//Label标题
		JLabel jl=new JLabel("内容:");
		JLabel jl1=new JLabel("路径:");
		//文本
		JTextArea jt=new JTextArea();
		JTextArea jt1=new JTextArea();
		//面板
		JScrollPane js=new JScrollPane(jt);
		JScrollPane js1=new JScrollPane(jt1);
		Container c=getContentPane();//容器
		//字体大小
		b1.setFont(font);
		b2.setFont(font);
		jl.setFont(font);
		jl1.setFont(font);
		jt.setFont(font);
		jt1.setFont(font);
		//设置工具的宽高和位置
		b1.setBounds(200, 350, 100, 30);
		b2.setBounds(450, 350, 100, 30);
		js.setBounds(70, 40, 600, 300);
		jl.setBounds(10, 10, 100, 100);
		js1.setBounds(70, 10, 600, 25);
		jl1.setBounds(10, 7, 50, 30);
		//添加到容器里面
		c.add(b1);
		c.add(b2);
		c.add(js);
		c.add(jl);
		c.add(js1);
		c.add(jl1);
		//读取文件
        //b1这个按钮添加一个监听事件   
		b1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent bi) {
				String resultString1= Luj(jt1);//文件路径
				if(resultString1.equals("")) {
					JOptionPane.showMessageDialog(null, "路径不能为空");	//弹出对话框
				}else {
                    //创建一输入字符流
					Reader reader = null;
					try {
						reader = new FileReader(resultString1);
						char[] cs=new char[200];
						int count=0;
						String str1 = "";
						try {
							while((count=reader.read(cs, 0, cs.length))!=-1) {
								str1+=new String(cs,0,count);
								jt.setText(str1);
							}
							JOptionPane.showMessageDialog(null,"读取成功!!!");
						} catch (IOException e) {
							e.printStackTrace();
						}
					} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "路径格式不正确, 提示:例如D:\\课件\\123.txt 或者 D:/课件/123.txt ");	//弹出对话框
					}finally {
						try {
							reader.close();
						} catch (IOException e) {
							e.printStackTrace();
						}
					} 
				}
			}
		});
		//写入文件
		b2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent b02) {
				String resultString1= Luj(jt1);//文件路径
				if(resultString1.equals("")) {
					JOptionPane.showMessageDialog(null, "路径不能为空");	//弹出对话框
				}else {
					Writer in = null;
					try {
						in = new FileWriter(resultString1);
						in.write(jt.getText());
						in.flush();
						in.close();
						JOptionPane.showMessageDialog(null,"写入成功!!!");
						} catch (IOException e) {
							JOptionPane.showMessageDialog(null, "路径格式不正确, 提示:例如:D:\\课件\\123.txt 或者 D:/课件/123.txt ");	//弹出对话框
						}finally {
							try {
								in.close();
							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
				}
			}
		});
		setVisible(true);//开启窗体
		//设置关闭方式
	   setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);	
	}
	public static String Luj(JTextArea JTextArea) {//这是一个用正则来匹配的方法
		String str= JTextArea.getText();//获取文本内容 "H:\lianxi\test.txt"
		String resultString = str.replaceAll("(?m)\"| ", "");
		String resultString1 = resultString.replaceAll("(?m)\\\\", "/");
		return resultString1;
	}
     public static void main(String[] args) {
    	 new Files();//实例
	}
}

效果
写出去:
在这里插入图片描述
在这里插入图片描述
读进来:
在这里插入图片描述

整理了Java GUI编程基础知识! public class AllFrame { /** * 这里的代码涉及到 GUI 编程基本面板、基本组件、事件(ActionListener、ChangeListener、MouseListener) */ public AllFrame() { // new 一个主窗体 也可以这样 new MainFrame(); MainFrame mf = new MainFrame(); } public static void main(String[] args) { new AllFrame(); } // 主窗体 继承 窗体基本格式 类 Jframe 以下弹出窗口均继承 Jframe class MainFrame extends Jframe implements ActionListener { JMenuBar menubar = new JMenuBar();;// 菜单条 JMenu jmenu[] = new JMenu[5];// panelMenu,usedMenu1,usedMenu2,layoutMenu,helpMenu; // 菜单项 JButton closebtn;// 关闭窗体 // 具体的选项 JMenuItem panelitem[] = new JMenuItem[4]; JMenuItem useditem1[] = new JMenuItem[6]; JMenuItem useditem2[] = new JMenuItem[6]; JMenuItem layoutitem[] = new JMenuItem[3]; JMenuItem helpitem = new JMenuItem("关于"); // 菜单中名称 String menu[] = { "面板使用", "常用组件一", "常用组件二", "布局设置", "帮助" }; String pane[] = { "普通面板", "滚动面板", "分割面板", "选项面板" }; String uesd1[] = { "标签", "按钮", "文本框", "文本域", "单选按钮" ,"微调"}; String uesd2[] = { "滑块","复选框", "下拉菜单", "列表", "表格", "树状" }; String layout[] = { "流式布局", "边界布局", "网格布局" }; // Jpanelitem,Jscrollpaneitem,Splitpaneitem,JTabbedpanelitem, // Jlabelitem,Jbuttonitem,JTextfielditem,JTextareaitem,JRadiobuttonitem, // JCheckboxitem,JCombomoxitem,Jlistitem,Jtableitem,Jtreeitem, // Flowlayoutitem,Borderlayoutitem,Girdlayoutitem, // Helpitem}; public MainFrame() { this.setTitle("JAVA图型界面学习(GUI)"); // 加载菜单条到窗体中 this.setJMenuBar(menubar); // 重新设置大小 this.setSize(380, 290); // 简单的居中方法 在窗体基本格式类 Jframe 中有详细的居中方法 this.setLocationRelativeTo(null); // 设置关闭窗口 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 调用方法 menu(); // 设置容器 Container con = this.getContentPane(); // 定义一个 标签 “JAVA图型界面学习” JLabel jl = new JLabel("JAVA图型界面学习"); // 组件 设置字体大小, 其他组件用法相同 jl.setFont(new Font("隶书", Font.BOLD, 24)); // 具体定位 组件名.setBounds(x, y, width, height) jl.setBounds(30, 30, 280, 50); // 把标签加到 con 容器中 con.add(jl); /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值