永发信息网

如何用java的GUI编写一个记事本

答案:2  悬赏:20  手机版
解决时间 2021-01-29 03:02
  • 提问者网友:美人性情
  • 2021-01-28 02:26
如何用java的GUI编写一个记事本
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-01-28 03:43
很久之前写过的,凑合着看吧,
package 个人练习;

import java.awt.FileDialog;
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.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.sql.Savepoint;

import javax.swing.JFrame;


public class JiShiBen implements ActionListener {
        //拥有自己的窗口
JFrame frame=new JFrame("记事本程序");
//菜单栏
MenuBar menubar=new MenuBar();
//创建下拉菜单
Menu wenjian=new Menu("文件");
//创建保存按钮
MenuItem dakai=new MenuItem("打开文件");
MenuItem baochun=new MenuItem("保存");
MenuItem xinjian=new MenuItem("新建");
//创建可以显示文本的多行区域
TextArea wenben=new TextArea();
//显示一个对话窗口,用户选择一个文件,如果模式是SAVE,则寻找一个地方去写入一个文件
FileDialog fd;
File file=null;


public  JiShiBen(){
frame.setMenuBar(menubar);//将菜单栏关联到窗口
menubar.add(wenjian);//将下拉菜单添加到菜单栏
wenjian.add(xinjian);
wenjian.add(dakai);//将保存按钮添加到下拉菜单
wenjian.add(baochun);

dakai.addActionListener(this);//由baochuan按钮接受处理操作事件
baochun.addActionListener(this);
xinjian.addActionListener(this);
frame.add(wenben);//将文本区域添加到窗口
//设置窗口的属性
frame.setSize(600,480);
frame.setLocation(200, 200);
frame.setVisible(true);


frame.addWindowListener(new WindowAdapter() {
 public void windowClosing(WindowEvent e) {
 System.exit(0);//终止当前运行的java虚拟机
 }
});
}


@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==baochun){
//public Object getSource()最初发生 Event 的对象。 返回,最初发生 Event 的对象。
fd=new FileDialog(frame,"保存文本文件",FileDialog.SAVE);

fd.setVisible(true);
//文件的存放位置是通过fd获取的位置,文件名是通过fd获取的文件名
file=new File(fd.getDirectory(), fd.getFile()+".txt");
save(file);
}
if(e.getSource()==dakai){
fd=new FileDialog(frame,"打开文件",FileDialog.LOAD);
fd.setVisible(true);

file=new File(fd.getDirectory()+fd.getFile());
System.out.println(fd.getFile());
System.out.println(fd.getDirectory());
open(file);
}
if(e.getSource()==xinjian){
wenben.setText("");
}
}


public void save(File file){
try{
PrintWriter pw=new PrintWriter(file);
pw.write(wenben.getText());//wenben.getText()返回文本区域的文本
pw.close();
}catch(Exception e){
}
}
//创建open方法
public void open(File file){
try{
FileInputStream fis=new FileInputStream(file);
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
    String line=null;
while((line=br.readLine())!=null){
wenben.append(line+"\n");
}
br.close();

}catch(Exception e){

}
}
public static void main(String[] args) {
new JiShiBen();
}


}
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-01-28 04:10
保存时文件名如file.txt 文件格式也要输入 !!!注意该程序只能打开txt文件、java源程序文件、html文件等, word的doc文件是特殊格式文件不能用本程序打开。 import java.io.*; import java.awt.*; import java.awt.event.*; public class jtxtfm{ public static void main(string args[]){ jtxtfrm fm=new jtxtfrm(); } } class jtxtfrm extends frame implements actionlistener{ filedialog op,sv; button btn1,btn2,btn3; textarea tarea; jtxtfrm(){ super("读写文件"); setlayout(null); setbackground(color.cyan); setsize(600,300); setvisible(true); btn1=new button("打开"); btn2=new button("保存"); btn3=new button("关闭"); tarea=new textarea(""); add(btn1);add(btn2);add(btn3);add(tarea); tarea.setbounds(30,50,460,220); btn1.setbounds(520,60,50,30); btn2.setbounds(520,120,50,30); btn3.setbounds(520,180,50,30); op=new filedialog(this,"打开",filedialog.load); sv=new filedialog(this,"保存",filedialog.save); btn1.addactionlistener(this); btn2.addactionlistener(this); btn3.addactionlistener(this); addwindowlistener( new windowadapter(){ public void windowclosing(windowevent e){ setvisible(false); system.exit(0); } } ); } public void actionperformed(actionevent e){ if(e.getsource()==btn1){ string str; op.setvisible(true); try{ file f1=new file(op.getdirectory(),op.getfile()); filereader fr=new filereader(f1); bufferedreader br=new bufferedreader(fr); tarea.settext(""); while((str=br.readline())!=null)tarea.append(str+'\n'); fr.close(); } catch(exception e1) {} } if(e.getsource()==btn2){ sv.setvisible(true); try{ file f1=new file(sv.getdirectory(),sv.getfile()); filewriter fw=new filewriter(f1); bufferedwriter bw=new bufferedwriter(fw); string gt=tarea.gettext(); bw.write(gt,0,gt.length()); bw.flush(); fw.close(); } catch ( exception e2) {} } if(e.getsource()==btn3){ system.exit(0); } } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯