GUI练习——记事本

简单的打开 保存文件 小记事本

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MenuDemo 
{
	private Frame f;
	//菜单组件 可添加菜单项及菜单组件
	private Menu m,m1,m2;
	//菜单栏
	private MenuBar mb;
	//菜单项
	private MenuItem closeMenu,mi2,mi3,openItem,saveItem;

	private FileDialog openDia,saveDia;
	private TextArea ta;
	File file = null;//文件对象
	MenuDemo()
	{
		init();
	}
	public void init()
	{
		f = new Frame("菜单练习");
		//窗体设置
		f.setBounds(200,100,600,600);
		//f.setLayout(new FlowLayout());//frame默认边界布局

		mb = new MenuBar();
		m = new Menu("文件");
		m1 = new Menu("一级菜单");
		m2 = new Menu("二级菜单");
		closeMenu = new MenuItem("退出");
		mi2 = new MenuItem("二级菜单项");
		mi3 = new MenuItem("三级退出");
		openItem = new MenuItem("打开");
		saveItem = new MenuItem("保存");
		saveItem.setShortcut(new MenuShortcut(KeyEvent.VK_S));//添加快捷命令
		//打开 保存 对话框
		openDia = new FileDialog(f,"打开",FileDialog.LOAD);
		saveDia = new FileDialog(f,"保存",FileDialog.SAVE);
		//文本框
		ta = new TextArea();

		//将菜单相关组件 添加到窗体
		f.setMenuBar(mb);//窗体添加菜单栏setMenuBar()
		mb.add(m);//MenuBar菜单栏中只能添加Menu不可以添加Menu的父类MenuItem
		m.add(openItem);
		m.add(saveItem);
		//m.addSeparator();//添加分割线 
		m.add(m1);
		m1.add(m2);
		m1.add(mi2);
		//m2.add(closeMenu);
		m2.add(mi3);
		m.add(closeMenu);
		f.add(ta);
	/*
	代码添加顺序就是图形的顺序  一个菜单项只有一个图形显示 当第二次添加同一个菜单项的时候
	之前添加此菜单项的语句被覆盖 或者说 失效
	*/
		myEvent();
		f.setVisible(true);
	}
	public void myEvent()
	{
		//为窗体添加 监听器
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		//为菜单项 添加监听器
		closeMenu.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);
			}
		});
		mi3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);
			}
		});
		openItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				openDia.setVisible(true);
				//打开文本文件 显示内容在文本框
				String dirPath = openDia.getDirectory();
				String fileName = openDia.getFile();
				System.out.println(dirPath+"...."+fileName);
				file = new File(dirPath,fileName);
				if(dirPath==null||fileName==null)
					return;
				ta.setText("");
				BufferedReader bfr = null;//局部变量必须赋初始值
				try
				{
					bfr = new BufferedReader(new FileReader(file));
					String line = null;
					while ((line = bfr.readLine())!=null)
					{
						//System.out.println(line);
						ta.append(line+"\r\n");//不要忘记添加换行符号
					}
				}
				catch (IOException io)
				{
					throw new RuntimeException("读取失败!");
				}
				finally
				{
					try
					{
						if(bfr!=null)
							bfr.close();
					}
					catch (IOException ec)
					{
						throw new RuntimeException("guan失败!");
					}
				}

			}
		});
		//为保存按钮添加监听 通过监听事件 执行动作:保存文本 到文件
		saveItem.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				if(file==null)
				{
					saveDia.setVisible(true);
					String dirPath = saveDia.getDirectory();
					String fileName = saveDia.getFile();
					file = new File(dirPath,fileName);
				}
				BufferedWriter bfw = null;
				try
				{
					bfw = new BufferedWriter(new FileWriter(file));
					String text = ta.getText();//返回文本组件内的文本
					bfw.write(text);
					bfw.flush();
				}
				catch (IOException ec)
				{
					throw new RuntimeException();
				}
				finally
				{
					try
					{
						if(bfw!=null)
							bfw.close();
					}
					catch (IOException ec)
					{
						throw new RuntimeException("guan失败!");
					}
				}

			}
		});

	}

	public static void main(String[] args) 
	{
		new MenuDemo();
	}
}
时间: 2024-10-13 11:35:36

GUI练习——记事本的相关文章

十一、GUI设计-记事本程序

"""记事本程序""" from tkinter import *from tkinter.filedialog import *from tkinter.colorchooser import *class Application(Frame): def __init__(self, master=None): super().__init__(master) # super()代表的是父类的定义,而不是父类对象 self.master = m

java GUI简单记事本

代码: 1 import java.awt.*; 2 import java.awt.event.*; 3 import java.io.*; 4 class MyMenu 5 { 6 //定义该窗体所需的组件,方便其他函数引用 7 private Frame f; 8 private Button btn; //按钮 9 private Button btn1; 10 private Label label; //标签 11 private TextArea ta ; //文本区域 12 pr

JAVA/GUI程序之记事本

自上半年JAVA课程结束后,再也没有看过JAVA了,最近不是很忙,又简单的看了看,本博客纯属记录学习过程,请大神们别笑,其中错误是难免的,毕竟是新手写的博客.下面就进入我们的正题吧,复习GUI时,就想到WINDOWS的记事本,如果用GUI来仿写应该不难.实现向记事本这样的文本编辑器,第一步,当然是界面的问题,这对于GUI来说再简单不过了,所以我也不多说了,直接贴上代码即可,相信都能看懂. 创建菜单代码: 1 //创建主菜单 2 public void createMenu() 3 { 4 //创

java GUI(实例项目--记事本)

//package mymenu; //java记事本 import java.awt.*; import java.awt.event.*; import java.io.*; public class MenuLianXi { //定义窗体 private Frame f; //定义菜单栏 private MenuBar menubar; //定义文本区 private TextArea textarea; //定义菜单 private Menu file_menu; //定义菜单项 pri

GUI记事本+切换面板

package com.niit.javagui; import java.awt.Color; import java.awt.MenuBar; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem

记事本GUI综合

1 package jframe; 2 3 import java.awt.*; 4 import javax.swing.*; 5 public class JPanel8 extends JFrame{ 6 //菜单栏,不参与布局 7 JMenuBar mb; 8 //节点级菜单 9 JMenu[] menu = {null,null,null,null,null}; 10 JMenu mn00; 11 //叶节点级菜单 12 JMenuItem[] mn000_1 = {null,null

第14篇-JAVA GUI编程

第14篇-JAVA GUI编程 每篇一句 :道路一开始开辟的时候总是存在障碍的 初学心得: 原本下定决心才能开始的事情也变得理所当然 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-25| JAVA GUI编程 ] 1.什么是界面 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面 与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受 2.Java 基础类 JFC 的基本

GUI用户图形界面

/*记事本小练习 * GUI & IO综合运用 */ import java.awt.*; import java.awt.event.*; import java.io.*; public class Test33 { public static void main(String[] args) { MyTest mytest = new MyTest(); mytest.frameInit(); //运行窗口 } } class MyTest{ //定义成员变量,包括窗体,文本区域,对话框,

简易的记事本程序

利用GUI和IO流做的简易的记事本程序 import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; imp