Cómo programar un bloc de notas usando java paso a paso
1. Para crear un Frame o JFrame, este último se usa básicamente ahora
2 Para crear tus controles, es el menú Jpanel del panel JMenu\JMenuItem, etc. wordpad textArea, etc.,
3. Escucha de acciones, addActionListener
4. Este es tu diseño.
Este es ejecutable, échale un vistazo.
p>
paquete mySwing;
importar javax.swing.*;
importar javax.swing.event.*;
importar java.awt. *;
importar java.awt.event.*;
importar java.io.*
importar java.awt.color.*; p>
importar java.awt.font.*;
importar javax.swing.plaf.metal.MetalLookAndFeel;
importar javax.swing.undo.*; p>
nota de clase pública extiende JFrame {
boolean isChange = false;
boolean wasChange = false;
JMenuBar menuBar = new JMenuBar();
p>
JMenu menuFile = new JMenu("Archivo");
JMenuItem menuFileOpen = new JMenuItem("Abrir..");
JMenuItem menuFileSave = new JMenuItem(" Guardar..");
JMenuItem menuFileExit = new JMenuItem("Salir");
JMenu menuEdit = new JMenu("Editar");
JMenuItem menuFileCut = new JMenuItem("Cortar");
JMenuItem fuente = new JMenuItem("Font");
JMenuItem menuFilePaste = new JMenuItem("Pegar ");
JTextArea fileArea = new JTextArea();
public Note() {
//menuFile.setIcon(new ImageIcon("D:\ \?\\eclipswork\\ MyTest\\bin\\remove.png"));
// fileArea.setBorder(BorderFactory.createTitledBorder("mytextArea"));
this.setTitle("±? ");
Herramienta del kit de herramientas = this.getToolkit() //
Imagen miimagen = herramienta;
.getImage(".jpg");
this.setIconImage(miimagen);
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) { p>
p>
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); p>
}
});
fileArea.getDocument().addDocumentListener(new DocumentListener() {
p
ublic void insertUpdate(DocumentEvent e) {
wasChange = isChange;
isChange = true
}
public void removeUpdate(DocumentEvent; e) {
wasChange = isChange;
isChange = true;
}
public void cambiadoUpdate(DocumentEvent e) { p>
p>
fueCambio = esCambio;
isCambio = verdadero
}
}); 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)
p>menuFile.addSeparator();
menuFile.add(menuFileExit);
menuFileExit.setMnemonic('E');
menuEdit. add(menuFileCut);
menuFileCut.setMnemonic('C');
menuFileCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
InputEvent.CTRL_MASK ));
p>
menuEdit.add(menuFilePaste);
menuFilePaste.setMnemonic('P');
menuFilePaste.setAccelerator(KeyStroke). .getKeyStroke(KeyEvent.VK_P,
InputEvent.CTRL_MASK));
menuEdit.add
(fuente);
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); p> public void fileOpen_actionPerformed(ActionEvent e) {
// ?filter;
JFileChooser fileChooser = new JFileChooser()
// fileChooser.addChoosableFileFilter( nuevo
// myFilter("*.txt", "Files(*.txt)"));
fileChooser.addChoosableFileFilter(fileChooser.getFileFilter());
if (fileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this))
return;
//
BufferedReader dataIn = null; p> p>
intente {
dataIn = new BufferedReader(new FileReader(fileChooser
.getSelectedFile().getPath()));
Cadena c = nulo;
hacer {
c = dataIn.readLine();
if (c != nulo)
fileArea. append(c "\n");
} while (c != null
} catch (Excepción ex) {
System. out. println("Excepción de captura:" ex.toString());
}
}
public void exit() {
if (isChange == false)
System.exit(1);
else {
int decisión = JOptionPane.showConfirmDialog(this, p>
"El Fil
e tiene Cambio.\n"
"¿Quieres guardar el cambio?", "Bloc de Notas",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE );
if (decisión == JOptionPane.YES_OPTION) {
// ?д?!
prueba {
JFileChooser fileSave = nuevo JFileChooser();
fileSave.setDialogTitle("");
// fileSave.addChoosableFileFilter(nuevo
// myFilter("*.txt ", "Archivos(*.txt)"));
fileSave.addChoosableFileFilter(fileSave.getFileFilter());
if (fileSave.APPROVE_OPTION != fileSave
.showSaveDialog(this))
return;
BufferedWriter dataOut = nuevo BufferedWriter(
nuevo BufferedWriter(nuevo FileWriter(fileSave
.getSelectedFile())));
Cadena c = nulo
isChange = false
hacer {
Cadena str = fileArea.getText();
dataOut.write(str);
dataOut.close();
} mientras (c != nulo) ;
} catch (Excepción e2) {
System.out.println("Catch excepción:?д!" e2.toString());
}
} else if (decisión == JOptionPane.NO_OPTION)
System.exit(1);
else if (decisión == JOptionPane.CANCEL_OPTION)
;
;
}
// internalclass.fileSave_actionPerformed(); >
archivo público vacíoSave_actionPerformed(ActionEvent e1) {
//
?д?!
intente {
JFileChooser fileSave = new JFileChooser();
fileSave.setDialogTitle(""); // fileSave.addChoosableFileFilter(new
// myFilter("*.txt", "Archivos(*.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); p>
dataOut.close();
} while (c != null);
p>} catch (Excepción e2) {
System.out.println("Excepción de captura:?д!" e2.toString());
} p>
}
public static void main(String) arg[]) {
//new MyUIManager();
Nota nt = nueva Nota ();
menú JLookAndFeelMenu = nuevo JLookAndFeelMenu(nt);
nt.menuBar.add(menú);
nt.show();
p>
}
público 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));
}
}