開心生活站

位置:首頁 > IT科技 > 

怎麼用記事本編寫java程序

IT科技1.05W

import java.io.*;import java.awt.*;import java

java是現在非常流行的一門計算機語言,除了用特定的編譯器外,也可以用記事本編寫java程序。下面一起來看看如何記事本編寫java程序吧,希望對大家有所幫助

材料/工具

電腦

方法

首先,按下Win+R打開運行命令框

首先在cmd裏執行java -version 看能不能出來java版本信息,如果看不到就是jdk安

怎麼用記事本編寫java程序

輸入CMD進入命令提示符工具

import java.awt.BorderLayout;import java.awt.Con

怎麼用記事本編寫java程序 第2張

如圖所示,輸入javac

首先右擊鼠標,新建一個文本文檔。更改文本文檔的後綴名爲 .java 。注意文件名必須和類名相

怎麼用記事本編寫java程序 第3張

選擇一個目錄,新建文本文件

1、你配置jdk正確嗎? 也就是JAVA_HOME = C:Program Files

怎麼用記事本編寫java程序 第4張

此處以編寫一個helloworld程序爲例,將文件命名爲“helloworld”,後綴改爲“.java”

很簡單的啊,在記事本里寫上相應的java代碼,寫好保存後將相應的文件名後綴改爲****.java,然

怎麼用記事本編寫java程序 第5張

先選中剛剛新建的文本文件,選擇“打開方式-記事本”

import java.awt.*;import java.awt.event.*;impo

怎麼用記事本編寫java程序 第6張

打開文件之後,即可編寫程序,保證類名與文件名一致

兩種解決方法:第一種:不建包,用缺省包,在CalculateDistance.java文件的首行

怎麼用記事本編寫java程序 第7張

打開命令提示符。輸入cd命令(cd命令爲改變目錄命令),更改目錄至java目錄。

先配置 java 環境 如果你是win7系統在我的電腦 右擊-》高級系統設置-》 環境變量-》P

怎麼用記事本編寫java程序 第8張

用命令javac編譯java文件

import java.io.*;import java.awt.*;import java

怎麼用記事本編寫java程序 第9張

編譯後,java目錄新增 helloworld.class文件。

1)確認你的JDK已安裝;2)在環境變量Path中添加你安裝的Java路徑下的bin目錄,我機器上

怎麼用記事本編寫java程序 第10張

輸入命令java helloworld,運行程序。如果程序無錯,即可運行成功

首先在cmd裏執行java -version 看能不能出來java版本信息,如果看不到就是jdk安

怎麼用記事本編寫java程序 第11張

擴展閱讀,以下內容您可能還感興趣。

如何用JAVA程序編寫一個記事本

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.undo.CannotRedoException;

import javax.swing.undo.UndoManager;

import java.util.Date;

import java.text.SimpleDateFormat;

public class Notepad extends JFrame {

// 菜單

JMenuBar menub = new JMenuBar();

// 顯示純文本的多行區域

JTextArea text = new JTextArea();

JMenu files = new JMenu("文件(F)");

JMenu edit = new JMenu("編輯(E)");

JMenu formats = new JMenu("格式(O)");

JMenu help = new JMenu("幫助(H)");

JMenuItem newFile = new JMenuItem("新建(N)");

JMenuItem open = new JMenuItem("打開(O)");

JMenuItem save = new JMenuItem("保存(S)");

JMenuItem saveAs = new JMenuItem("另存爲(A)");

JMenuItem exit = new JMenuItem("退出(X)");

JMenuItem undo = new JMenuItem("撤銷(U)");

JMenuItem cut = new JMenuItem("剪切(T)");

JMenuItem copy = new JMenuItem("複製(C)");

JMenuItem paste = new JMenuItem("粘貼(P)");

JMenuItem selectAll = new JMenuItem("全選(A)");

JMenuItem timeDate = new JMenuItem("時間/日期(D)");

JCheckBoxMenuItem lineWrap = new JCheckBoxMenuItem("自動換行(M)");

JMenuItem fonts = new JMenuItem("字體");

JMenuItem about = new JMenuItem("關於記事本(A)");

JFrame th = this;

String name;

String openedPath = null;

boolean opened = false;

boolean reworked = false;

UndoManager undoManager = new UndoManager();

// 初始化窗體

public Notepad(String name) {

super(name);

this.name = name;

int x, y;

// 得到用戶屏幕大小

Dimension size = Toolkit.getDefaultToolkit().getScreenSize();

x = (size.width - 600) / 2;

y = (size.height - 400) / 2;

setSize(600, 400);

// 讓程序界面顯示在屏幕中央

setLocation(x, y);

// 將此窗口的最小大小設置爲一個常量值。e799bee5baa6e79fa5e98193e78988e69d8331333262346537

setMinimumSize(new Dimension(250, 150));

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

// 初始化佈局

void init() {

files.setMnemonic('F');

edit.setMnemonic('E');

formats.setMnemonic('O');

help.setMnemonic('H');

newFile.setMnemonic('N');

open.setMnemonic('O');

save.setMnemonic('S');

saveAs.setMnemonic('A');

exit.setMnemonic('X');

undo.setMnemonic('U');

cut.setMnemonic('T');

copy.setMnemonic('C');

paste.setMnemonic('P');

selectAll.setMnemonic('A');

timeDate.setMnemonic('D');

lineWrap.setMnemonic('M');

about.setMnemonic('A');

// 爲控件添加助記符

newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,

InputEvent.CTRL_MASK));

open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,

InputEvent.CTRL_MASK));

save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,

InputEvent.CTRL_MASK));

exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,

InputEvent.CTRL_MASK));

cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,

InputEvent.CTRL_MASK));

copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,

InputEvent.CTRL_MASK));

paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,

InputEvent.CTRL_MASK));

selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,

InputEvent.CTRL_MASK));

// 爲控件添加快捷鍵

timeDate.setAccelerator(KeyStroke.getKeyStroke("F5"));

files.add(newFile);

files.add(open);

files.add(save);

files.add(saveAs);

files.addSeparator();

files.add(exit);

edit.add(undo);

edit.addSeparator();

edit.add(cut);

edit.add(copy);

edit.add(paste);

edit.addSeparator();

edit.add(selectAll);

edit.add(timeDate);

formats.add(lineWrap);

formats.add(fonts);

help.add(about);

menub.add(files);

menub.add(edit);

menub.add(formats);

menub.add(help);

setJMenuBar(menub);

getContentPane().add(new JScrollPane(text));

Listen listen = new Listen();

Listen1 listen1 = new Listen1();

// 爲控件添加事件偵聽器

newFile.addActionListener(listen);

undo.addActionListener(listen);

open.addActionListener(listen);

save.addActionListener(listen);

saveAs.addActionListener(listen);

exit.addActionListener(listen);

cut.addActionListener(listen);

copy.addActionListener(listen);

paste.addActionListener(listen);

selectAll.addActionListener(listen);

timeDate.addActionListener(listen);

lineWrap.addActionListener(listen);

about.addActionListener(listen);

open.addActionListener(listen1);

save.addActionListener(listen1);

saveAs.addActionListener(listen1);

// 暫時沒有實現的功能 :設置字體

//undo功能沒有實現

fonts.setEnabled(false);

}

class Listen implements ActionListener {

// 實現用於一般操作的事件偵聽器

public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

if (source == newFile) {

text.setText("");

// 設置標題

th.setTitle(name);

openedPath = null;

opened = false;

} else if (source == exit)

setVisible(false);

else if (source == undo)

try {

//此功能沒有實現 撤銷要用棧?

// undo.setEnabled(undoManager.canUndo());

undoManager.undo();

} catch (CannotRedoException cre) {

cre.printStackTrace();

}

else if (source == selectAll)

text.selectAll();

else if (source == cut)

text.cut();

else if (source == copy)

text.copy();

else if (source == paste)

text.paste();

else if (source == lineWrap)

// 設置文本區的換行策略(獲取文本區的換行策略)

text.setLineWrap(!text.getLineWrap());

else if (source == about) {

String message = "--------\n版本:1.0\n作者:時超" +

"\n撤銷功能要用堆棧存貯操作" +

"\n還有字體格式"+

"\n暫時沒有實現" +

"\n\n感謝您的使用";

JOptionPane.showMessageDialog(th, message, "關於",

JOptionPane.PLAIN_MESSAGE);

} else if (source == timeDate) {

Date nowTime = new Date();

SimpleDateFormat times = new SimpleDateFormat(

"HH:mm yyyy-MM-dd");

text.insert(times.format(nowTime), text.getCaretPosition());

}

}

}

class Listen1 implements ActionListener {

// 實現用於對文件進行操作的事件偵聽器

public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

// 打開文件事件

if (source == open) {

// 顯示對話窗口 以便選擇文件

FileDialog openFile = new FileDialog(th, "打開文件",

FileDialog.LOAD);

openFile.setVisible(true);

// 獲取文件路徑

String filePath = openFile.getDirectory() + openFile.getFile();

try {

FileInputStream fis = new FileInputStream(filePath);

byte[] content = new byte[fis.available()];

fis.read(content);

text.setText(new String(content));

// 設置 TextComponent 的文本插入符的位置

text.setCaretPosition(0);

if (openFile.getFile() != null) {

th.setTitle(openFile.getFile() + name);

openedPath = filePath;

opened = true;

}

fis.close();

} catch (Exception ex) {

ex.printStackTrace();

}

opened = true;

}

// 保存及另存爲事件

else if (source == save || source == saveAs) {

String savePath = openedPath;

if (savePath == null || source == saveAs) {

// 如果 mode 的值爲 LOAD,那麼文件對話框將查找要讀取的文件,所顯示的文件是當前目錄中的文件

// 如果 mode 的值爲 SAVE,則文件對話框將查找要寫入文件的位置。

FileDialog saveFile = new FileDialog(th, "保存文件",

FileDialog.SAVE);

saveFile.setVisible(true);

savePath = saveFile.getDirectory() + saveFile.getFile();

}

try {

FileOutputStream fos = new FileOutputStream(savePath);

fos.write(text.getText().getBytes());

fos.close();

} catch (Exception ex) {

ex.printStackTrace();

}

if (source == save)

openedPath = savePath;

}

}

}

public static void main(String[] args) {

try {

// 使用當前線程的上下文類加載器加載給定類名稱所指定的 LookAndFeel

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch (Exception e) {

System.err.println("Couldn't use the system look and feel:" + e);

}

String name = ("--記事本 版本1.0--");

Notepad note = new Notepad(name);

note.init();

note.setVisible(true);

}

}

使用記事本編寫JAVA程序,並運行輸出結果,具體的實現步驟是什麼?

1)確認你的JDK已安裝;

2)在環境變量Path中添加你安裝的Java路徑下的bin目錄,我機器上是C:\Program Files\Java\jdk1.6.0_24\bin,和其它Path值之間需要來用分號隔開;

3)在環境變量自ClassPath中添加dt.jar和tools.jar兩個庫文件;

4)在Command命令行窗口執行java -version命令後,如果得到了正確的Java版本號,說明你的環境變量配置正確;

5)打開記事本,編寫一個簡單的Hello World程序,保存成.java格式文件,文件名和類名必需一致;

6)在Command命令行窗口運行編譯命令:百javac 文件名.java,該命令會將源文件編譯爲後綴度名class的字節碼文件;

7)在Command命令行窗口運行執行命令:java 文件名,OK,你應該能看到正確的結果了;

用記事本編寫Java程序生成不了class文件,怎麼回事?

首先在cmd裏執行復java -version 看能不能出來java版本信息,如果看不到就是jdk安裝有問題,如果能看到制說明jdk安裝是沒 有問題的

建議你把源文件放到f:\盤根目zhidao錄,然後在cmd 裏 進入f:\ 然後在執行javac *.java 試試

用JAVA編寫記事本

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;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.BorderFactory;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPopupMenu;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.KeyStroke;

import javax.swing.ScrollPaneConstants;

import javax.swing.SwingConstants;

public class JNotePadUI extends JFrame {

private JMenuItem menuOpen;

private JMenuItem menuSave;

private JMenuItem menuSaveAs;

private JMenuItem menuClose;

private JMenu editMenu;

private JMenuItem menuCut;

private JMenuItem menuCopy;

private JMenuItem menuPaste;

private JMenuItem menuAbout;

private JTextArea textArea;

private JLabel stateBar;

private JFileChooser fileChooser;

private JPopupMenu popUpMenu;

public JNotePadUI() {

super("新建文本文件");

setUpUIComponent();

setUpEventListener();

setVisible(true);

}

private void setUpUIComponent() {

setSize(640, 480);

// 菜單欄

JMenuBar menuBar = new JMenuBar();

// 設置「文件」菜單

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

menuOpen = new JMenuItem("打開");

// 快捷鍵設置

menuOpen.setAccelerator(

KeyStroke.getKeyStroke(

KeyEvent.VK_O,

InputEvent.CTRL_MASK));

menuSave = new JMenuItem("保存");

menuSave.setAccelerator(

KeyStroke.getKeyStroke(

KeyEvent.VK_S,

InputEvent.CTRL_MASK));

menuSaveAs = new JMenuItem("另存爲");

menuClose = new JMenuItem("關閉");

menuClose.setAccelerator(

KeyStroke.getKeyStroke(

KeyEvent.VK_Q,

InputEvent.CTRL_MASK));

fileMenu.add(menuOpen);

fileMenu.addSeparator(); // 分隔線

fileMenu.add(menuSave);

fileMenu.add(menuSaveAs);

fileMenu.addSeparator(); // 分隔線

fileMenu.add(menuClose);

// 設置「編輯」菜單

JMenu editMenu = new JMenu("編輯");

menuCut = new JMenuItem("剪切");

menuCut.setAccelerator(

KeyStroke.getKeyStroke(KeyEvent.VK_X,

InputEvent.CTRL_MASK));

menuCopy = new JMenuItem("複製");

menuCopy.setAccelerator(

KeyStroke.getKeyStroke(KeyEvent.VK_C,

InputEvent.CTRL_MASK));

menuPaste = new JMenuItem("粘貼");

menuPaste.setAccelerator(

KeyStroke.getKeyStroke(KeyEvent.VK_V,

InputEvent.CTRL_MASK));

editMenu.add(menuCut);

editMenu.add(menuCopy);

editMenu.add(menuPaste);

// 設置「關於」菜單

JMenu aboutMenu = new JMenu("關於");

menuAbout = new JMenuItem("關於JNotePad");

aboutMenu.add(menuAbout);

menuBar.add(fileMenu);

menuBar.add(editMenu);

menuBar.add(aboutMenu);

setJMenuBar(menuBar);

// 文字編輯區域

textArea = new JTextArea();

textArea.setFont(new Font("宋體", Font.PLAIN, 16));

textArea.setLineWrap(true);

JScrollPane panel = new JScrollPane(textArea,

ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,

ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

Container contentPane = getContentPane();

contentPane.add(panel, BorderLayout.CENTER);

// 狀態欄

stateBar = new JLabel("未修改");

stateBar.setHorizontalAlignment(SwingConstants.LEFT);

stateBar.setBorder(

BorderFactory.createEtchedBorder());

contentPane.add(stateBar, BorderLayout.SOUTH);

popUpMenu = editMenu.getPopupMenu();

fileChooser = new JFileChooser();

}

private void setUpEventListener() {

// 按下窗口e69da5e6ba90e799bee5baa631333238656539關閉鈕事件處理

addWindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

closeFile();

}

}

);

// 菜單 - 打開

menuOpen.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

openFile();

}

}

);

// 菜單 - 保存

menuSave.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

saveFile();

}

}

);

// 菜單 - 另存爲

menuSaveAs.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

saveFileAs();

}

}

);

// 菜單 - 關閉文件

menuClose.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

closeFile();

}

}

);

// 菜單 - 剪切

menuCut.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

cut();

}

}

);

// 菜單 - 複製

menuCopy.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

copy();

}

}

);

// 菜單 - 粘貼

menuPaste.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

paste();

}

}

);

// 菜單 - 關於

menuAbout.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

// 顯示對話框

JOptionPane.showOptionDialog(null,

"程序名稱:\n JNotePad \n" +

"程序設計:\n \n" +

"簡介:\n 一個簡單的文字編輯器\n" +

" 可作爲驗收Java的實現對象\n" +

" 歡迎網友下載研究交流\n\n" +

" /",

"關於JNotePad",

JOptionPane.DEFAULT_OPTION,

JOptionPane.INFORMATION_MESSAGE,

null, null, null);

}

}

);

// 編輯區鍵盤事件

textArea.addKeyListener(

new KeyAdapter() {

public void keyTyped(KeyEvent e) {

processTextArea();

}

}

);

// 編輯區鼠標事件

textArea.addMouseListener(

new MouseAdapter() {

public void mouseReleased(MouseEvent e) {

if(e.getButton() == MouseEvent.BUTTON3)

popUpMenu.show(editMenu, e.getX(), e.getY());

}

public void mouseClicked(MouseEvent e) {

if(e.getButton() == MouseEvent.BUTTON1)

popUpMenu.setVisible(false);

}

}

);

}

private void openFile() {

if(isCurrentFileSaved()) { // 文件是否爲保存狀態

open(); // 打開

}

else {

// 顯示對話框

int option = JOptionPane.showConfirmDialog(

null, "文件已修改,是否保存?",

"保存文件?", JOptionPane.YES_NO_OPTION,

JOptionPane.WARNING_MESSAGE, null);

switch(option) {

// 確認文件保存

case JOptionPane.YES_OPTION:

saveFile(); // 保存文件

break;

// 放棄文件保存

case JOptionPane.NO_OPTION:

open();

break;

}

}

}

private boolean isCurrentFileSaved() {

if(stateBar.getText().equals("未修改")) {

return false;

}

else {

return true;

}

}

private void open() {

// fileChooser 是 JFileChooser 的實例

// 顯示文件選取的對話框

int option = fileChooser.showDialog(null, null);

// 使用者按下確認鍵

if(option == JFileChooser.APPROVE_OPTION) {

try {

// 開啓選取的文件

BufferedReader buf =

new BufferedReader(

new FileReader(

fileChooser.getSelectedFile()));

// 設定文件標題

setTitle(fileChooser.getSelectedFile().toString());

// 清除前一次文件

textArea.setText("");

// 設定狀態欄

stateBar.setText("未修改");

// 取得系統相依的換行字符

String lineSeparator = System.getProperty("line.separator");

// 讀取文件並附加至文字編輯區

String text;

while((text = buf.readLine()) != null) {

textArea.append(text);

textArea.append(lineSeparator);

}

buf.close();

}

catch(IOException e) {

JOptionPane.showMessageDialog(null, e.toString(),

"開啓文件失敗", JOptionPane.ERROR_MESSAGE);

}

}

}

private void saveFile() {

// 從標題欄取得文件名稱

File file = new File(getTitle());

// 若指定的文件不存在

if(!file.exists()) {

// 執行另存爲

saveFileAs();

}

else {

try {

// 開啓指定的文件

BufferedWriter buf =

new BufferedWriter(

new FileWriter(file));

// 將文字編輯區的文字寫入文件

buf.write(textArea.getText());

buf.close();

// 設定狀態欄爲未修改

stateBar.setText("未修改");

}

catch(IOException e) {

JOptionPane.showMessageDialog(null, e.toString(),

"寫入文件失敗", JOptionPane.ERROR_MESSAGE);

}

}

}

private void saveFileAs() {

// 顯示文件對話框

int option = fileChooser.showSaveDialog(null);

// 如果確認選取文件

if(option == JFileChooser.APPROVE_OPTION) {

// 取得選擇的文件

File file = fileChooser.getSelectedFile();

// 在標題欄上設定文件名稱

setTitle(file.toString());

try {

// 建立文件

file.createNewFile();

// 進行文件保存

saveFile();

}

catch(IOException e) {

JOptionPane.showMessageDialog(null, e.toString(),

"無法建立新文件", JOptionPane.ERROR_MESSAGE);

}

}

}

private void closeFile() {

// 是否已保存文件

if(isCurrentFileSaved()) {

// 釋放窗口資源,而後關閉程序

dispose();

}

else {

int option = JOptionPane.showConfirmDialog(

null, "文件已修改,是否保存?",

"保存文件?", JOptionPane.YES_NO_OPTION,

JOptionPane.WARNING_MESSAGE, null);

switch(option) {

case JOptionPane.YES_OPTION:

saveFile();

break;

case JOptionPane.NO_OPTION:

dispose();

}

}

}

private void cut() {

textArea.cut();

stateBar.setText("已修改");

popUpMenu.setVisible(false);

}

private void copy() {

textArea.copy();

popUpMenu.setVisible(false);

}

private void paste() {

textArea.paste();

stateBar.setText("已修改");

popUpMenu.setVisible(false);

}

private void processTextArea() {

stateBar.setText("已修改");

}

public static void main(String[] args) {

new JNotePadUI();

}

}

如何用記事本編寫java程序

首先右擊鼠標,新建一個文本文檔。

更改文本文檔的後綴名爲 .java 。注意文件名必須和類名相同。

如果你的電腦沒有顯示後綴名的話需要對電覆腦進行一定的設置

打開計算機——組織——文件夾選項——查制看——將隱藏文件夾選項取消勾選即可。

建議將這個選項取消勾選,有很多的惡意程序會侵入我們的電腦,取消勾選可以很好的查看病百毒等文件的類型。

右擊建好的文檔,選擇編輯即可進行java的編寫。

在編寫的時候我們有一定的格式,java語言的格式是爲了我們日後更改程序方便而規定的,我們一定要遵循這種格式編寫。

測試運行java程序

打開運行命令,也可以直接在開菜單中度輸入CMD調用命令窗口知。

你的文件保存在哪裏就將你的文件目錄輸入到命令提示符窗口中,例如我的道是D盤根目錄,所以我輸入“d:”。

編譯java文件,生成class文件。

在命令提示符中輸入“javac 文件名.java”,我的文件名爲A,所以輸入javac A.java然後回車,等待編譯。

運行文件。

繼續輸入“java 文件名”然後回車就可以運行我們寫好的文件了。

標籤:編寫 記事本 java