Cómo escribir un bloc de notas en Java (solo awt, sin swing)
/bbs/printthread.php? t=2628
/*
*Creado el 22 de marzo de 2005
*
* Tarea 1 del curso JAVA: Escribir un bloc de notas Puede realizar las funciones simples de un bloc de notas.
*Plantilla de código de estilo de código Java de preferencias
*/
Importar lector almacenado en búfer Java .
importar Java .io .excepción de archivo
Importar lector de archivos io . ;
Importar javax.swing.jframe;
Importar javax.swing.joptionpane;
Clase pública MyActions {
estática final larga versión serial uid = 322819399994336070 l;
//Abrir el archivo
String fileOpen() {
//Establecer parámetros públicos
BufferedReader in = null//Establecer el búfer de lectura
JFrame dialog frame = new JFrame(); //Ventana emergente
Ruta del archivo de cadena //Ruta del archivo p >
búfer de cadena sb temp = new string buffer(" ");//Búfer de archivo
String sTemp = null//Búfer de línea
//Configurar la extensión del archivo es el comienzo.
selector jfile c = nuevo selector jfile();
filtro de archivo de ejemplo filtro = nuevo filtro de archivo de ejemplo();
filtro agregar extensión(" txt. ");
Filter.setDescription("Archivo de texto");
c.setFileFilter(filter);
//La extensión del archivo que abrirse Establecer para finalizar.
int rVal = c.showopendialog(marco de diálogo);
if(rVal == JFileChooser.APPROVE_OPTION) {
filePath = c.getSelectedFile().
getPath();
Pruebe {
in = nuevo lector almacenado en búfer (nuevo lector de archivos (ruta del archivo));
} catch (excepción de archivo no encontrado e 1){
e 1. printstacktrace();
}
Pruebe {
while((sTemp = in.readLine( ))! = nulo ) {
sb temp . p>
E2 . printstacktrace();
}
Prueba {
in . (IOException e3) {
E3 . printstacktrace();
}
}
return(sb temp . tostring()) ;
}
//Guardar el archivo
void fileSave() {
archivo guardar como();
}
Guardar archivo de cadena como (){
//Establecer parámetros públicos
JFrame dialog frame = new JFrame() //Pop-; ventana superior
ruta del archivo del búfer de cadena = new string buffer(" "); //Ruta del archivo
//Establezca la extensión del archivo guardado para iniciar.
selector jfile c = nuevo selector jfile();
filtro de archivo de ejemplo filtro = nuevo filtro de archivo de ejemplo();
filtro agregar extensión(" txt. ");
Filter.setDescription("Archivo de texto");
c.setFileFilter(filter);
//La extensión del archivo será guardado Configurar para finalizar.
int rVal = c . showsavedialog(marco de diálogo);
if(rVal == JFileChooser.APPROVE_OPTION) {
ruta del archivo append(c . getselectedfile. ().getPath());
}
/*
*Sentencia:
*Si no se especifica al guardar el archivo extensión de archivo, automáticamente se indicará como . TXT.
*Si se especifica una extensión de archivo al guardar el archivo, el archivo se guardará de la manera especificada.
*/
if ((filePath.lastIndexOf(" . ")) == -1) {
filePath.append(".
txt ");
return(ruta del archivo . tostring());
}
Otros
return(ruta del archivo . tostring ());
}
int fileNotSaveMessage(){
int I;
I = joptionpane.showconfirmdialog(null,
"El archivo ha sido modificado. ¿Quieres guardarlo?", "Bloc de notas", JOptionPane. SÍ _ NO _ OPCIÓN
Regresar
<. p>}}
/*
*Creado el 22 de marzo de 2005
*
* Tarea 1 del curso JAVA: escribir un bloc de notas que pueda realizar las funciones simples de un bloc de notas.
*Plantilla de código de estilo de código Java-Preferencias de ventana
*/
Importar Java.awt.*;
importar Java.awt.event.*;
importar Java.io.*;
importar javax.swing.*;
La interfaz de usuario de clase extiende JFrame{ p>
versión serial larga final estática uid =-4974434346775996938 l;
//Establecer interfaz
JFrame frame = new JFrame("Notepad");
// p>
//Establecer elementos del menú
JMenuItem
Crear archivo de menú, abrir archivo de menú, guardar archivo de menú,
Imprimir menú archivo, archivo de menú Configuración de impresión, salida de archivo de menú,
edición de menú cortar, edición de menú copiar, edición de menú pegar,
edición de menú eliminar selección, edición de menú buscar, edición de menú reemplazar,
>menuEditGoTo, menuHelpAbout
//Establecer el menú opcional
JCheckBoxMenuItem menuViewWordWrap;
//Establecer la categoría del menú
JMenu menuFile, menuEdit, menuView, menuHelp
//Establecer elementos del menú contextual
JMenuItem
RCMenuCut, RCMenuCopy, RCMenuPaste, RCMenuSelectAll
/ /Establecer barra de menú
JMenuBar MB = new JMenuBar();
JPopupMenu popup = new JPopupMenu();
// Establecer área de edición de texto
JScrollPane scrollPane
Área de texto JTextArea;
//Establecer el oyente
mi oyente ML = nuevo mi oyente ();
oyente popul PL = nuevo oyente popul();
//Establecer otros parámetros del sistema
booleano isFileSave = false
boolean isFileNew = true
int recibirReturnPara
Private void setMenu() {
// - Establecer categoría de menú.
MenuFile = nuevo JMenu ("archivo (F)", verdadero);
menuFile.setMnemonic(KeyEvent.VK_F);
MenuEdit = nuevo JMenu( "Editar (E)", verdadero);
menuEdit.setMnemonic(KeyEvent.VK_E);
vista de menú = new jmenu("vista(V)", verdadero);
menuView.setMnemonic(KeyEvent.
VK V);
MenuHelp = nuevo JMenu ("ayuda (H)", verdadero);
menuHelp.setMnemonic(KeyEvent.VK_H);
/ / - Fin de clasificación del menú.
//Archivo nuevo menú
MenuFileNew = nuevo JMenuItem ("nuevo", 'n');
menú archivo nuevo establecer acelerador (pulsación de tecla. get). pulsación de tecla (key event.VK_N,
Evento de entrada.CTRL_MASK));
menufilenew.addactionlistener(ML);
//Menú de apertura de archivos
MenuFileOpen = new JMenuItem(" open(O)",' O ');
abrir archivo de menú establecer acelerador(pulsación de tecla. obtener pulsación de tecla(evento clave. VK_O,
Evento de entrada. CTRL_MASK));
menufileopen.addactionlistener(ML);
//Menú para guardar archivos
MenuFileSave = new JMenuItem ("save( S)",'S');
menú archivo guardar . establecer acelerador(pulsación de tecla . obtener pulsación de tecla(evento clave.VK,
Evento de entrada.CTRL_MASK ));
menufilesave . addactionlistener(ML);
//Guardar archivo como menú
MenuFileSaveAs = new JMenuItem("Guardar como (A). .. ",'A' );
menufilesaveas.set accelerator(keystroke.get keystroke(key event.VK_F12,0));
menufilesaveas.addactionlistener(ML);
/ /Menú de cierre de archivo
MenuFileExit = new JMenuItem(" close(X)",' X ');
salir del archivo de menú establecer acelerador(pulsación de tecla. obtener pulsación de tecla(evento de tecla. F4 VK,
Evento de entrada. ALT_MASK));
menufileexit . addactionlistener(ML);
//Editar menú de corte
MenuEditCut = new JMenuItem(" cut(T) ", ' T ');
menueditcut . establecer acelerador(pulsación de tecla. obtener pulsación de tecla(evento clave. VK X,
evento de entrada.
CTRL_MASK));
menueditcut . addactionlistener(ML);
//Editar menú de copia
MenuEditCopy = new JMenuItem(" copiar(C)", ' C');
menueditcopy . set accelerator(keystroke . get keystroke(key event. VK SAR,
Evento de entrada. CTRL_MASK));
menueditcopy . addactionlistener(ML);
//Editar menú pegar
MenuEditPaste = new JMenuItem(" pegar(P)",' P ');
menueditpaste . establecer acelerador(pulsación de tecla. obtener pulsación de tecla(evento clave.VK V,
Evento de entrada.CTRL_MASK));
menueditpaste.addactionlistener(ML);
/ /Editar seleccionar todo menú
MenuSelectAll = new JMenuItem(" seleccionar todo(A)",' A ');
menuselectall.set accelerator(keystroke .get keystroke(key event. VK_A,
Evento de entrada.CTRL_MASK));
menuselectall .addactionlistener(ML);
//Editar y eliminar menú
menueditdeleteselection = new j menuitem("delete(S)",'S');
menueditdeleteselection . set accelerator(keystroke . get keystroke(key event.VK_delete, 0));
menueditdeleteselection . addactionlistener(ML);
//La edición del menú no está completa.
/* menuEditGoTo = new JMenuItem(" ir a(A)",'A');
menueditgoto . establecer acelerador(pulsación de tecla. obtener pulsación de tecla(evento clave.VK_G,
Evento de entrada. CTRL_MASK));
menueditgoto. addactionlistener(ML);
*/
//Ver ajuste de línea automático
menuviewwordwrap = new jcheckbox menuitem(" ajuste de palabras ");
menuviewwordwrap set mnemonic(' W '); pulsación de tecla (evento clave.
VK W,
Evento de entrada. CTRL_MASK));
menuviewwordwrap.setstate(false);
menuviewwordwrap.addactionlistener(ML);
//Ayuda acerca de
MenuHelpAbout = new JMenuItem(" About(A)... ",' A ');
menuhelpabout . set accelerator(keystroke . get keystroke(key event. VK_F1, 0)
p>menuhelpabout . addactionlistener(ML);
}
Private void setRightClickMenu() {
//Establecer el menú contextual p>
RCMenuCut = nuevo JMenuItem ("cortar (T)", 'T');
rcmenucut . addactionlistener(ML);
RCMenuCopy = nuevo JMenuItem(" copiar (C) ", ' C ');
rcmenucopy . addactionlistener(ML);
RCMenuPaste = new JMenuItem(" pegar(P)", ' P '); p>
rcmenupast. addactionlistener(ML);
RCMenuSelectAll = new JMenuItem(" seleccionar todo(S)", ' S ');
p>}
SetUI nulo privado() {
frame.getContentPane().
set layout(new BorderLayout());
frame .setjmenubar(MB);
JPanel p = new JPanel();
//Al archivo. menú Agregar un elemento
MB agregar(archivo de menú);
archivo de menú agregar(archivo de menú nuevo); abrir );
archivo de menú . agregar(archivo de menú guardar);
archivo de menú agregar(menuFileSaveAs); //Línea de separación
archivo de menú. add(salir del archivo de menú);
//Agregar un elemento al menú de edición
MB add(edición de menú). );
menuedit .add(menuEditCut);
menu editar . add(menu editar copiar
menuedit . >
edición de menú . add(menuSelectAll);
edición de menú .
menuedit . menuedit . add(menuEditGoTo);
//Agregar elementos al menú de vista
MB add(menu view);
menu view . );
//Agregar un elemento al menú de ayuda
MB add(menu help
menuhelp . >
//Agregar menú contextual
add(RCMenuCut);
add(RCMenuCopy); RCMenuPaste);
popup . add(RCMenuSelectAll);
//Agregar área de desplazamiento
panel de desplazamiento = new JScrollPane();
j puerto de vista = panel de desplazamiento.get viewport();
textArea = new JTextArea();
textArea.setFont(newFont("Fixedsys", font.
Plain, 14));
port.add(textArea);
//Agregar un componente
frame.add("Centro", panel de desplazamiento) ;
//Agregar respuesta al menú contextual
textarea addmouse listening(PL);
//Agregar evento de ventana
. frame. addwindowlistener(nuevo adaptador de ventana(){
cierre de ventana vacía pública (evento de ventana e){
if (!isFileSave) {
mis acciones MA = new mis acciones();
recibir retorno para = ma . filenotsavemessage();
Cadena s = nueva cadena (" ");
if ( recibirReturnPara == 0){
//Si se selecciona "Sí", llame al método para guardar el archivo y luego cierre
Pruebe {
PrintWriter out =. new PrintWriter (nuevo escritor almacenado en búfer (
nuevo escritor de archivos ((s = ma . file save as()))));
out print(textarea . gettext(). );
salida . close();
} captura (IOException e1) {
e 1 . } p>
isFileSave = true
system . exit(0);
} else if(recibir devolución para == 1){
// Si se selecciona "No", cierre directamente y el archivo no se guardará
system .
<. p>system .exit(0);}
});
//Establecer la ventana para que sea visible p>
marco.setSize(800, 600);
marco establecido visible(verdadero);
}
void startApp() {<. /p>
Pruebe {
//Configure la interfaz en la interfaz de Windows.
UIManager
.
setLookAndFeel(" com . sun . Java . swing . plaf . windows . windows lookandfeel ");
} catch(Exception e) {
}
setMenu ();
setRightClickMenu();
setUI();
}
La clase PopupListener extiende MouseAdapter {
mouse public void presionado (evento del mouse e){
maybeShowPopup(e);
}
mouse public void liberado (evento del mouse e){
maybeShowPopup(e);
}
private void maybeShowPopup(evento del mouse e){
if(por ejemplo isPopupTrigger())
popup.show((JTextArea)e.get componente(),e.getX(),e.gety());
}
}
La clase MyListener implementa ActionListener {
mis acciones MA = new mis acciones();
void saveFile() {
Probar {
PrintWriter out = new PrintWriter(nuevo escritor almacenado en búfer (
nuevo escritor de archivos (ma . archivo guardado como())));
imprimir. ( área de texto . gettext());
out . close();
} captura (IOException e1) {
e 1 . /p>
p>
}
isFileSave = true
}
acción de anulación pública realizada (evento de acción e){
if( e. getsource()= = menú archivo nuevo){
//Si no se guarda, pregunte al crear un nuevo archivo.
if (!isFileSave) {
recibir devolución para = ma . filenotsavemessage();
if (receiveReturnPara == 0){
//Si se selecciona "Sí", se llamará al método guardado para crear un nuevo archivo y se le notificará que el archivo aún no se ha guardado.
textarea . settext(" ");
isFileSave = false
} En caso contrario {
//Si se selecciona "No" Luego cree un nuevo archivo directamente y el archivo no se guarda.
área de texto . settext(" ");
isFileSave = false
}
}de lo contrario
área de texto . settext(" ");
}
else if(e . getsource()= = archivo de menú abierto){
//Si no se guarda, Preguntado al crear un nuevo archivo.
if (!isFileSave) {
recibir devolución para = ma . filenotsavemessage();
if (receiveReturnPara == 0){
//Si se selecciona "Sí", se llama al método de guardar el archivo y luego se llama al método de apertura del archivo.
//Y notifica que el archivo recién abierto no se guarda.
textarea . settext(" ");
textarea . settext(ma . fileopen());
isFileSave = false
} De lo contrario{
//Si selecciona "No", el archivo se abrirá directamente sin guardarlo.
textarea . settext(" ");
textarea . settext(ma . fileopen());
isFileSave = false
}
}En caso contrario {
textarea . settext(" ");
textarea . >}
}
else if(e . getsource()= = menú guardar archivo){
guardar archivo();
}
else if(e . getsource()= = menuFileSaveAs){
guardar archivo();
}
else if(e . getsource()= = salida del archivo del menú){
if (!isFileSave) {
recibir retorno para = ma . >if (receiveReturnPara == 0){
//Si se selecciona "Sí", se llama al método para guardar el archivo y luego se cierra.
guardar archivo();
system . exit(1);
} En caso contrario {
//Si "No" es seleccionado, se cerrará directamente sin guardar el archivo.
sistema .salir(1);
}
} De lo contrario
salir(1); p>}
else if((e . getsource()= = menuEditCut)| |(e . getsource()= = RCMenuCut)){
textarea cut();
}
else if((e . getsource()= = menú editarcopiar)| |(e . getsource()= = RCMenuCopy)){
área de texto . copiar();
}
else if((e . getsource()= = menuEditPaste)| |(e . getsource()= = RCMenuPaste)){ p>
textarea . pegar();
}
else if((e . getsource()= = menuSelectAll)| |(e . getsource()= = RCMenuSelectAll )){
textarea . seleccionar todo();
}
else if(e . getsource()= = menuViewWordWrap){
if(menuviewwordwrap . getstate()){
textarea . setline wrap(true);
}else {
textarea setline wrap(false) ;
}
}
else if(e . getsource()= = menuHelpAbout){
joptionpane .
" = = = = Bloc de notas simple = = = \n \Xiaolong\nUniversidad Jiaotong de Beijing\nEscuela de Computación y Tecnología de la Información\nClase 0308 \n\nwww.qqpop.com ",
"acerca de",jooptionpane.close_options);
}
}
}
}
Bloc de notas de clase pública {
Public static void main(String[] args) {
UserInterface Bloc de notas = nueva interfaz de usuario();
bloc de notas .startapp() ;
}
}