java gui 记事本程序,JAVA GUI PART1 记事本程序 极其简易版

JMenuBar 菜单栏

JMenu 菜单项

JMenuItem 菜单项弹出来的子菜单项

FileDialog 用来访问本地文件的对话框 (frame,string,int)

以下为简易修改版记事本

import java.awt.EventQueue;

public class Textbook {

private JFrame frame;

JMenu mnFile = new JMenu("文件");

JMenuBar menuBar = new JMenuBar();

JMenuItem mntmOpen = new JMenuItem("打开");

JMenuItem mntmSaveas = new JMenuItem("另存为");

JMenu mnEdit = new JMenu("编辑");

JMenu mnFormat = new JMenu("格式");

JMenu mnView = new JMenu("查看");

JMenu mnHelp = new JMenu("帮助");

JMenuItem mntmSave = new JMenuItem("保存");

JMenuItem mntmQuit = new JMenuItem("退出");

JTextArea textArea = new JTextArea();

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Textbook window = new Textbook();

window.frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the application.

*/

public Textbook() {

initialize();

}

/**

* Initialize the contents of the frame.

*/

private void initialize() {

frame = new JFrame("IdeaPad");

frame.setBounds(300,200,(int)Toolkit.getDefaultToolkit().getScreenSize().width/2,(int)Toolkit.getDefaultToolkit().getScreenSize().height/2);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//菜单栏

frame.setJMenuBar(menuBar);

//文件菜单

menuBar.add(mnFile);

mnFile.add(mntmOpen);

mnFile.add(mntmSave);

mnFile.add(mntmSaveas);

mnFile.add(mntmQuit);

//其他菜单

menuBar.add(mnEdit);

menuBar.add(mnFormat);

menuBar.add(mnView);

menuBar.add(mnHelp);

frame.getContentPane().add(textArea, BorderLayout.CENTER);

addEvent();

}

private void addEvent() {

// TODO Auto-generated method stub

//

//打开文件**********************************************************

//

mntmOpen.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

FileDialog fd=new FileDialog(frame,"打开",FileDialog.LOAD);

fd.setVisible(true);

String strFile=fd.getDirectory()+fd.getFile();

if(strFile!=null){

try{

BufferedReader br=new BufferedReader (new FileReader(strFile));

String b="";

textArea.removeAll();

while((b=br.readLine())!=null){

textArea.append(b+"\n");

}

br.close();

}catch(Exception e){

e.printStackTrace();

}

}

}//action over

});

//

//保存文件*************************************************

//

mntmSave.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

FileDialog fd=new FileDialog(frame,"保存",FileDialog.SAVE);

fd.setVisible(true);

String dirPath=fd.getDirectory();

String fileName=fd.getFile();

if(dirPath==null||fileName==null){

return;

}

try{

fileName+=".txt";

BufferedWriter bw=new BufferedWriter(new FileWriter(new File(dirPath,fileName)));

String text=textArea.getText();

bw.write(text);

bw.close();

}catch(Exception e){

e.printStackTrace();

}

}

});//action over

//

//退出按钮

//

mntmQuit.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

System.exit(0);

}

});

}

}

string为对话框的标题,Int代表执行的是打卡或是保存

filedialog.getDirectory()

得到地址

filedialog.getFile()

得到文件名

所以一个完整的地址是  地址加文件名

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现了记事本的大部分功能,适合新手看。 // 文本编辑区 private JTextArea editArea = new JTextArea(); // 菜单项 private JMenu[] menus = { new JMenu("文件(F)"), new JMenu("编辑(E)"), new JMenu("格式(E)"), new JMenu("查看(V)"), new JMenu("帮助(H)") }; private JMenuItem[] fileMenu = { new JMenuItem("新建(N) "), new JMenuItem("打开(O)... "), new JMenuItem("保存(S) "), new JMenuItem("另存为(A)... "), new JMenuItem("页面设置(U)... "), new JMenuItem("打印(P)... "), new JMenuItem("退出(X) ") }; private JMenuItem[] editMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("查找(F)... "), new JMenuItem("查找下一个(N) "), new JMenuItem("替换(R)... "), new JMenuItem("转到(G)... "), new JMenuItem("全选(A) "), new JMenuItem("时间/日期(D) ") }; private JCheckBoxMenuItem formatMenu1 = new JCheckBoxMenuItem( "自动换行(W) "); private JMenuItem formatMenu2 = new JMenuItem("字体(F)... "); private JMenuItem checkMenu = new JMenuItem("状态栏(S) "); private JMenuItem[] helpMenu = { new JMenuItem("查看帮助(H) "), new JMenuItem("关于记事本(A) ") }; private JPopupMenu pmenus = new JPopupMenu(); private JMenuItem[] popupMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("全选(A) "), }; // 剪切板引用 private Toolkit toolKit = Toolkit.getDefaultToolkit(); private Clipboard clipBoard = toolKit.getSystemClipboard(); // 其他变量 private boolean isNewFile = true; private File currentFile; private String oldTxt; // 撤销管理器 private UndoManager undo = new UndoManager(); private UndoableEditListener undoHandler = new UndoHandler();

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值