當前位置:編程學習大全網 - 編程語言 - 如何用java壹步步編出壹個記事本程序

如何用java壹步步編出壹個記事本程序

壹、要創建壹個Frame或者JFrame現在基本上都用後者

二、要建立妳的控件,就是面板Jpanel菜單JMenu\JMenuItem等,寫字板textArea等,

三、動作監聽器,addActionListener

四、就是妳的布局了

壹下是壹個可以運行的,妳看看

package mySwing;

import javax.swing.*;

import javax.swing.event.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.awt.color.*;

import java.awt.font.*;

import javax.swing.plaf.metal.MetalLookAndFeel;

import javax.swing.undo.*;

public class Note extends JFrame {

boolean isChange = false;

boolean wasChange = false;

JMenuBar menuBar = new JMenuBar();

JMenu menuFile = new JMenu("File");

JMenuItem menuFileOpen = new JMenuItem("Open..");

JMenuItem menuFileSave = new JMenuItem("Save..");

JMenuItem menuFileExit = new JMenuItem("Exit");

JMenu menuEdit = new JMenu("Edit");

JMenuItem menuFileCut = new JMenuItem("Cut");

JMenuItem font = new JMenuItem("Font");

JMenuItem menuFilePaste = new JMenuItem("Paste");

JTextArea fileArea = new JTextArea();

public Note() {

//menuFile.setIcon(new ImageIcon("D:\\?\\eclipswork\\MyTest\\bin\\remove.png"));

// fileArea.setBorder(BorderFactory.createTitledBorder("mytextArea"));

this.setTitle("±?");

Toolkit tool = this.getToolkit();//

Image myimage = tool.getImage(".jpg");

this.setIconImage(myimage);

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

exit();

}

});

menuFileOpen.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

//fileOpen_actionPerformed(e);

}

});

menuFileSave.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

fileSave_actionPerformed(e);

}

});

menuFileExit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

fileExit_actionPerformed(e);

}

});

menuFileCut.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

fileCut_actionPerformed(e);

}

});

menuFilePaste.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

filePaste_actionPerformed(e);

}

});

font.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

fileColor_actionPerformed(e);

}

});

fileArea.getDocument().addDocumentListener(new DocumentListener() {

public void insertUpdate(DocumentEvent e) {

wasChange = isChange;

isChange = true;

}

public void removeUpdate(DocumentEvent e) {

wasChange = isChange;

isChange = true;

}

public void changedUpdate(DocumentEvent e) {

wasChange = isChange;

isChange = true;

}

});

setSize(500, 450);

menuBar.add(menuFile);

menuFile.setMnemonic('F');

menuBar.add(menuEdit);

menuEdit.setMnemonic('E');

menuFile.add(menuFileOpen);

menuFileOpen.setMnemonic('O');// ?;

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

InputEvent.CTRL_MASK));// ;

menuFile.add(menuFileSave);

menuFileSave.setMnemonic('S');

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

InputEvent.CTRL_MASK));

menuFile.addSeparator();

menuFile.add(menuFileExit);

menuFileExit.setMnemonic('E');

menuEdit.add(menuFileCut);

menuFileCut.setMnemonic('C');

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

InputEvent.CTRL_MASK));

menuEdit.add(menuFilePaste);

menuFilePaste.setMnemonic('P');

menuFilePaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,

InputEvent.CTRL_MASK));

menuEdit.add(font);

font.setMnemonic('N');

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

InputEvent.CTRL_MASK));

this.getContentPane().add(new JScrollPane(fileArea));

setJMenuBar(menuBar);

fileArea.setLineWrap(true);

}

public void fileExit_actionPerformed(ActionEvent e) {

System.exit(0);

}

public void fileOpen_actionPerformed(ActionEvent e) {

// ?filter;

JFileChooser fileChooser = new JFileChooser();

// fileChooser.addChoosableFileFilter(new

// myFilter("*.txt","Files(*.txt)"));

fileChooser.addChoosableFileFilter(fileChooser.getFileFilter());

if (fileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this))

return;

//

BufferedReader dataIn = null;

try {

dataIn = new BufferedReader(new FileReader(fileChooser

.getSelectedFile().getPath()));

String c = null;

do {

c = dataIn.readLine();

if (c != null)

fileArea.append(c + "\n");

} while (c != null);

} catch (Exception ex) {

System.out.println("Catch exception:" + ex.toString());

}

}

public void exit() {

if (isChange == false)

System.exit(1);

else {

int decision = JOptionPane.showConfirmDialog(this,

"The File has Change.\n"

+ "Do you want to save the change?", "Notepad",

JOptionPane.YES_NO_CANCEL_OPTION,

JOptionPane.WARNING_MESSAGE);

if (decision == JOptionPane.YES_OPTION) {

// ?д?!

try {

JFileChooser fileSave = new JFileChooser();

fileSave.setDialogTitle("");

// fileSave.addChoosableFileFilter(new

// myFilter("*.txt","Files(*.txt)"));

fileSave.addChoosableFileFilter(fileSave.getFileFilter());

if (fileSave.APPROVE_OPTION != fileSave

.showSaveDialog(this))

return;

BufferedWriter dataOut = new BufferedWriter(

new BufferedWriter(new FileWriter(fileSave

.getSelectedFile())));

String c = null;

isChange = false;

do {

String str = fileArea.getText();

dataOut.write(str);

dataOut.close();

} while (c != null);

} catch (Exception e2) {

System.out.println("Catch exception:?д!" + e2.toString());

}

} else if (decision == JOptionPane.NO_OPTION)

System.exit(1);

else if (decision == JOptionPane.CANCEL_OPTION)

;

;

}

// innerclass.fileSave_actionPerformed();

}

public void fileSave_actionPerformed(ActionEvent e1) {

// ?д?!

try {

JFileChooser fileSave = new JFileChooser();

fileSave.setDialogTitle("");

// fileSave.addChoosableFileFilter(new

// myFilter("*.txt","Files(*.txt)"));

fileSave.addChoosableFileFilter(fileSave.getFileFilter());

if (fileSave.APPROVE_OPTION != fileSave.showSaveDialog(this))

return;

BufferedWriter dataOut = new BufferedWriter(new BufferedWriter(

new FileWriter(fileSave.getSelectedFile() + ".txt")));

// RandomAccessFile dataOut=new

// RandomAccessFile(fileSave.getSelectedFile(),"rw");

String c = null;

isChange = false;

do {

String str = fileArea.getText();

dataOut.write(str);

dataOut.close();

} while (c != null);

} catch (Exception e2) {

System.out.println("Catch exception:?д!" + e2.toString());

}

}

public static void main(String arg[]) {

//new MyUIManager();

Note nt = new Note();

JLookAndFeelMenu menu = new JLookAndFeelMenu(nt);

nt.menuBar.add(menu);

nt.show();

}

public void fileCut_actionPerformed(ActionEvent e) {

fileArea.cut();

}

public void filePaste_actionPerformed(ActionEvent e) {

fileArea.paste();

}

public void fileColor_actionPerformed(ActionEvent e) {

JColorChooser fileColor = new JColorChooser();

// fileArea.setForeground(fileColor.showDialog(this,"",Color.red));

// fileArea.setSelectionColor(fileColor.showDialog(this,"",Color.red));

fileArea.setSelectionColor(fileColor

.showDialog(this, "", Color.black));

}

}

  • 上一篇:UNIX編程藝術的譯 序
  • 下一篇:螺旋攻絲編程
  • copyright 2024編程學習大全網