91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java怎么編寫記事本程序

小億
102
2023-12-04 20:40:47
欄目: 編程語言

要編寫一個簡單的記事本程序,你可以使用Java GUI庫(如Swing或JavaFX)來創建用戶界面,并使用Java文件IO操作來讀取和寫入文本文件。

下面是一個使用Swing庫來創建一個簡單記事本程序的例子:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Notepad extends JFrame {

    private JTextArea textArea;
    private JFileChooser fileChooser;

    public Notepad() {
        super("記事本");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 600);

        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);
        add(scrollPane, BorderLayout.CENTER);

        fileChooser = new JFileChooser();

        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("文件");
        JMenuItem newMenuItem = new JMenuItem("新建");
        JMenuItem openMenuItem = new JMenuItem("打開");
        JMenuItem saveMenuItem = new JMenuItem("保存");
        JMenuItem exitMenuItem = new JMenuItem("退出");

        newMenuItem.addActionListener(new NewActionListener());
        openMenuItem.addActionListener(new OpenActionListener());
        saveMenuItem.addActionListener(new SaveActionListener());
        exitMenuItem.addActionListener(new ExitActionListener());

        fileMenu.add(newMenuItem);
        fileMenu.add(openMenuItem);
        fileMenu.add(saveMenuItem);
        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);
        setJMenuBar(menuBar);
    }

    private class NewActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            textArea.setText("");
        }
    }

    private class OpenActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            int returnVal = fileChooser.showOpenDialog(Notepad.this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fileChooser.getSelectedFile();
                try {
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    StringBuilder sb = new StringBuilder();
                    String line;
                    while ((line = reader.readLine()) != null) {
                        sb.append(line).append("\n");
                    }
                    reader.close();
                    textArea.setText(sb.toString());
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

    private class SaveActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            int returnVal = fileChooser.showSaveDialog(Notepad.this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fileChooser.getSelectedFile();
                try {
                    BufferedWriter writer = new BufferedWriter(new FileWriter(file));
                    writer.write(textArea.getText());
                    writer.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

    private class ExitActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            Notepad notepad = new Notepad();
            notepad.setVisible(true);
        });
    }
}

這個記事本程序使用JFrame作為程序窗口,并在窗口中添加了一個JTextArea來顯示文本內容。通過菜單欄提供了新建、打開、保存和退出等功能。用戶可以通過菜單欄的打開和保存選項來選擇文件進行讀寫操作。

以上代碼只是一個簡單的記事本示例,你可以根據自己的需求添加更多的功能和樣式。

0
区。| 麟游县| 老河口市| 托里县| 鄂温| 毕节市| 宁安市| 刚察县| 咸宁市| 阳高县| 昌宁县| 枞阳县| 宽城| 高碑店市| 沂源县| 庄浪县| 沿河| 陇西县| 定兴县| 长宁区| 德庆县| 文昌市| 新乡县| 元谋县| 临泽县| 威远县| 井冈山市| 平舆县| 康平县| 左云县| 汉中市| 驻马店市| 巴彦淖尔市| 思南县| 滨海县| 泗阳县| 台北县| 社旗县| 临泽县| 扎赉特旗| 师宗县|