java编的记事本的一个问题

2019-03-25 13:36|来源: 网路

package com.gui;

import java.awt.CheckboxMenuItem;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

public class SampleMenu implements ActionListener, ItemListener {
	private Frame f;
	private String r,stitle;
	private MenuBar mb;
	private TextArea TA;
	FileDialog FD,FS;
	
	int newflag = 1;

	private Menu m1;

	private Menu m2;

	private Menu m3;
	private Menu m4;
	private Menu m5;

	private MenuItem mi1;

	private MenuItem mi2;

	private MenuItem mi3;

	private MenuItem mi4;
	private MenuItem mi5;
	private MenuItem mi6;
	private MenuItem mi7;
	private CheckboxMenuItem mi8;

	public void go() {
		f = new Frame("记事本");
		mb = new MenuBar();
		m1 = new Menu("文件(F)");
		m2 = new Menu("编辑(E)");
		m3 = new Menu("格式(O)");
		m4 = new Menu("查看(V)");
		m5 = new Menu("帮助(H)");
		mb.add(m1);
		mb.add(m2);
		mb.add(m3);
		mb.add(m4);
		mb.setHelpMenu(m5);
		f.setMenuBar(mb);

		mi1 = new MenuItem("新建(N)       CTRL+N");
		mi2 = new MenuItem("打开(O)       CTRL+O");
		mi3 = new MenuItem("保存(S)       CTRL+S");
		mi4 = new MenuItem("另存为(A)..");
		mi5 = new MenuItem("页面设置(U)..   ");
		mi6 = new MenuItem("打印(P)       CTRL+P");
		mi7 = new MenuItem("退出(X)");
		mi1.addActionListener(this);
		mi2.addActionListener(this);
		mi3.addActionListener(this);
		mi4.addActionListener(this);
		mi5.addActionListener(this);
		mi6.addActionListener(this);
		mi7.addActionListener(this);
		m1.add(mi1);
		m1.add(mi2);
		m1.add(mi3);
		m1.add(mi4);
		m1.addSeparator();
		m1.add(mi5);
		m1.add(mi6);
		m1.addSeparator();
		m1.add(mi7);

		mi8 = new CheckboxMenuItem("Persistent");
		mi8.addItemListener(this);
		m1.add(mi8);
		TA = new TextArea();
		f.add(TA);
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);

			}

		});
		f.setSize(500, 500);
		f.setVisible(true);

	}

	public void actionPerformed(ActionEvent ae) {
		 if(ae.getSource()==mi1)
		{ newflag=1;
		  TA.setText(" ");
	    }
		 
		 
		 if(ae.getSource()==mi3)
       {
        if(newflag==1){
         FS=new FileDialog(f,"保存文件",FileDialog.SAVE);
         FS.setDirectory("c:\\");
         FS.setFile("*.txt");
         FS.setVisible(true);
		 stitle=FS.getDirectory()+FS.getFile();
		 newflag=0;
		}
		try{
         File myfile=new File(stitle);
		 BufferedWriter out=new BufferedWriter(new FileWriter(myfile));
		 out.write(TA.getText());
		 out.close();
		}catch(IOException ioe){
		 System.out.println(ioe.toString());
		 }
       }
		
		/*if(ae.getSource()==mi2);
		 {
	     FD=new FileDialog(f,"打开文件",FileDialog.LOAD);
		 FD.setDirectory("c:\\");
		 FD.setVisible(true);
		 try
		 {
		 TA.setText(" ");
		 File mf=new File(FD.getDirectory(),FD.getFile());
		 RandomAccessFile raf=new RandomAccessFile(mf,"rw");
		 //String s1=null;
		 while((r=raf.readLine())!=null){
			// s1 = new String(r.getBytes("GBK"),"ISO8895_1");
		 TA.append(r+"\n");
		 }
		 }catch(IOException ioe)
		 {
		 System.err.println(ioe.toString());
		 }

		 }*/
       

		 

		if (ae.getActionCommand().equals("退出(X)")) {
			System.exit(0);
		}
	}
	

	public void itemStateChanged(ItemEvent ie) {
		String state = "deselected";

		if (ie.getStateChange() == ItemEvent.SELECTED) {
			state = "selected";
		}
		System.out.println(ie.getItem() + " " + state);
	}

	public static void main(String args[]) {
		SampleMenu sampleMenu = new SampleMenu();
		sampleMenu.go();
	}
}

暂时实现了文件功能的菜单,在子选项中实现了新建,打开,保存功能,但是为什么点击以后都是实现的打开功能,除非把打开那段的代码注释掉才行,大家指点下~谢谢

相关问答

更多
  • 方法/步骤 下载JDK,并安装成功,CMD测试Java环境安装成功。出现如下提示则Java环境安装成功 打开mycelipse进入主界面,点击左上角file--new---java project,新建一个Java项目,项目名字任意取,这里我取名为note--然后点击完成,创建Java项目 然后右键项目下的src--new---package,新建一个包,包名我定为notetest,然后点击完成 然后右键我们建立好的包notetest--new--class,包名为Note,点击完成 首先我们想导入工程所需 ...
  • 装完之后先设置环境变量,具体方法搜索一个就可以找到. 然后在控制台javac编译,java 命令运行. 建议找个视频教程看看,随便一个都有演示.
  • java记事本源代码 import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import java.util.*; //Date needed import java.io.PrintWriter; public class NotePad extends JFrame { JTextArea jta; class newl implements ActionListener ...
  • 参照别人以前的做法, 那版本没有做撤销的方法,我添加了一个,只不过不能大段撤销,只能一个一个的撤销。
  • 1.安装JDK 下载地址:http://cn.sun.com/ 2:配置环境变量 方法: 安装后需要设置环境变量,在我的电脑--》属性--->高级--->环境变量 加入:JAVA_HOME = C:\Program Files\Java\jdk1.5.0_06 然后把JAVA_HOME 加入path中就可以了 PATH=F:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin ...
  • 命令行操作 javac HelloWorld.java(要有jdk编译成类文件) java HelloWorld(JVM运行) 默认要在同一目录下,如:d:/menu/HelloWorld.java 你需要cd(命令行)到d:/menu,再分别输入那两个语句 问题是没那个类文件 你可以下载个IDE工具用用,要是初学者,那记事本也不是件坏事!
  • import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; impo ...
  • java带有那个sample的,与jdk一起下的里面有 我机器上的路径: Java\jdk1.5.0_15\demo\jfc\Notepad
  • import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; class Editer1 implements ActionListener { JFrame f; JTextArea input; JMenuItem menuItemopen,menuItemsave,menuItemquit; String filename=""; String directory="E:\\"; public E ...
  • 可以编的,只要你有那个能力,在若干年前,程序员就是用的记事本一类的东西编写的程序,那个太麻烦了,但是我是不会的,不过像楼上兄弟说的编一些网页什么的还是可以的,因为这个相对更简单