本人的GitHub:戳我一下

这个程序还有很多问题,但是总的框架已经搭好,因为图形界面并不是主要的学习内容,所以这个写的挺糟糕的。

/**
 * 我的记事本(界面+功能)
 */
package com.yifanjia.one;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NotePad extends JFrame implements ActionListener {
    //定义需要的组件
    JTextArea jta = null;
    //定义菜单条
    JMenuBar jmb = null;
    JMenu jm1 = null;
    JMenuItem jmi1 = null;
    JMenuItem jmi2 = null;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        NotePad np = new NotePad();
    }
    public NotePad() {
        jta = new JTextArea();
        jmb = new JMenuBar();
        jm1 = new JMenu("文件");
        //设置助记符
        jm1.setMnemonic('F');
        jmi1 = new JMenuItem("打开");
        //注册监听
        jmi1.addActionListener(this);
        jmi1.setActionCommand("open");
        jmi2 = new JMenuItem("保存");
        jmi2.addActionListener(this);
        jmi2.setActionCommand("close");
        this.add(jta);
        //加入
        this.setJMenuBar(jmb);
        //把jm1放入jmb
        jmb.add(jm1);
        //把item放入Menu
        jm1.add(jmi1);
        jm1.add(jmi2);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(400,300);
        this.setVisible(true);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        //判断是那个按钮被选中
        if(e.getActionCommand().equals("open")) {
            //文件选择组件
            JFileChooser jfc1 = new JFileChooser();
            //设置名字
            jfc1.setDialogTitle("请选择文件.....");
            //使用默认方式
            jfc1.showOpenDialog(null);
            //显示一下
            jfc1.setVisible(true);
            //得到用户选择的文件绝对路径
            String filename = jfc1.getSelectedFile().getAbsolutePath();
            FileReader fr = null;
            BufferedReader br = null;
            try {
                fr = new FileReader(filename);
                br = new BufferedReader(fr);
                String s = "";
                String all = "";
                while((s = br.readLine()) != null) {
                    all += (s + '\n');
                }
                jta.setText(all);
            } catch (FileNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } finally {
                try {
                    br.close();
                    fr.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }

        }
        else if(e.getActionCommand().equals("close")){
            //文件选择组件
            JFileChooser jfc1 = new JFileChooser();
            //设置名字
            jfc1.setDialogTitle("另存为.....");
            //使用默认方式
            jfc1.showSaveDialog(null);
            //显示一下
            jfc1.setVisible(true);
            //得到用户选择的文件绝对路径
            String filename = jfc1.getSelectedFile().getAbsolutePath();
            FileWriter fw = null;
            BufferedWriter bw = null;
            try {
                fw = new FileWriter(filename);
                bw = new BufferedWriter(fw);
                String all = jta.getText();
                bw.write(all);
            } catch (FileNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } finally {
                try {
                    bw.close();
                    fw.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }
    }
}
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐