importar java.awt.*;
importar java.awt.event.*;
importar javax.swing
La clase pública JNotePadUI extiende JFrame {
Menú JMenuItem privadoAbrir
Menú JMenuItem privadoGuardar;
Menú JMenuItem privadoGuardar como p>
Menú de elementos JMenu privadoCerrar
Menú de edición de JMenu privado
Menú de elementos JMenu privadoCortar
Menú de elementos JMenu privadoCopiar
Menú de elementos JMenu privadoPegar< / p>
Menú de elementos JMenu privadoAcerca de
JTextArea privado textArea
StateBar de JLabel privado
JFileChooser privado fileChooser
JPopupMenu privado popUpMenu< / p>
JNotePadUI() público {
Super("Nuevo archivo de texto");
setUpUIComponent();
setUpEventListener();
p>
set visible(true);
}
Número privado setUpUIComponent() {
setSize(640, 480 );
//Barra de menú
JMenuBar menuBar = new JMenuBar();
//Establecer menú de archivo
Menú de archivo JMenu = new JMenu(" file ");
menu open = new JMenuItem(" open ");
//Configuración de teclas de acceso directo
menuOpen.setAccelerator(
keystone . get keystone(
Evento clave.VK_O,
Evento de entrada.CTRL_MASK));
menú guardar = nuevo JMenuItem (" guardar " );
menuSave.setAccelerator(
keystone . get keystone(
Evento clave. VK,
Eventos de entrada. CTRL _ MASK));
MenuSaveAs = nuevo JMenuItem("Guardar como");
menú cerrar = nuevo JMenuItem(" cerrar "); .setAccelerator(
keystone . get keystone(
Evento clave. VK_Q,
Evento de entrada.
CTRL _ MASK));
menú de archivo . add(menú abierto);
menú de archivo . . agregar(menú guardar);
menú de archivo . add(menus aveas);
menú de archivo . menu . add(menu close);
//Establecer el menú de edición
JMenu edit menu = new JMenu(" edit ");
menu cut = new JMenuItem(" cut ");
menuCut.setAccelerator(
keystone . get keystone(key event.VK X,
Evento de entrada.CTRL_ MASK) );
copia de menú = new JMenuItem(" copia ");
menuCopy.setAccelerator(
keystone . get keystone(evento clave. VK SAR ,
Evento de entrada. CTRL_MASK));
pegar menú = nuevo JMenuItem(" pegar ");
pegar menú establecer acelerador(
keystone .get keystone(key event.VK V,
Input event.CTRL_MASK));
editar menú .add(menu cut);
editar menú . add(menú copiar);
editmenu . add(menú pegar
//Establecer el menú "Acerca de"
JMenu acerca del menú = nuevo JMenu(" acerca de ");
MenuAbout = nuevo JMenuItem("acerca de JNotePad ");
acerca del menú agregar(menú acerca de);
menuBar.add(menú Archivo);
menubar.add(menú editar);
menuBar.add(menú Acerca de);
setJMenuBar ( barra de menú);
//Área de edición de texto
textArea = new JTextArea();
TextArea.setFont(new font("ì", font . simple, 16));
textarea.setline wrap(true);
panel JScrollPane = new JScrollPane(textArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS _ NEEDED,
Constantes del panel de desplazamiento.
horizontal_scrollbar_never);
panel de contenido del contenedor = getContentPane();
contentPane.add(panel, BorderLayout.center
/ /Barra de estado
StateBar = new JLabel("Sin modificar");
barra de estado de alineación horizontal (constantes de oscilación. izquierda);
stateBar.setBorder (
fábrica de bordes. createetchedborder());
contentPane.add(stateBar,BorderLayout.
Sur);
menú emergente = menú editar . getmenú emergente();
selector de archivos = nuevo selector de archivos j();
}
Private void setUpEventListener() {
//Procesamiento de eventos cuando se presiona el botón de cerrar ventana
addWindowListener(
New WindowAdapter() {
cierre de ventana pública vacía (evento de ventana e){
cerrar archivo();
}
}
)
//Menú-Abrir
menuOpen.addActionListener(
Nueva ActionListener() {
acción de anulación pública realizada (evento de acción) e){
openFile();
}
}
);
//Menú- Guardar
menuSave.addActionListener(
new ActionListener() {
acción de anulación pública realizada (evento de acción e){
guardar archivo ();
}
}
);
//Menú-Guardar como
menuGuardar como . addActionListener(
New ActionListener() {
acción de anulación pública realizada (evento de acción e){
guardar archivo como();
}
}
);
//Menú-Cerrar Archivo
menuClose.addActionListener(
New ActionListener() {
acción de anulación pública realizada (evento de acción e){
cerrar archivo();
}
}
);
//Menú Cortar
menuCut.addActionListener(
Nuevo ActionListener() { p>
acción de anulación pública realizada (evento de acción e){
cut();
}
}
) ;
//Menu-Copy
menuCopy.addActionListener(
Nueva ActionListener() {
acción de anulación pública realizada (evento de acción e){ p>
copiar();
}
}
);
//Menú -Pegar
menuPaste.addActionListener(
nuevo ActionListener(
) {
acción de anulación pública realizada (evento de acción e){
pegar();
}
}
);
//Menú-Acerca de
menuAbout.addActionListener(
Nueva ActionListener() {
acción de anulación pública realizado(evento de acción e){
//Mostrar cuadro de diálogo
JOptionPane.showOptionDialog(vacío,
"Nombre del programa:\n JNotePad \n"
"Programación:\n?\n"
Introducción:\nEditor de texto simple\n,
"Acerca de JNotePad",
JOptionPane.Opción predeterminada,
JOptionPane.info_message,
nulo, nulo, nulo);
}
}
);
//Editar eventos de teclado de área
textArea.addKeyListener(
Nuevo adaptador de clave(){
Público void typed(KeyEvent e) {
proceso textarea();
}
}
);
//Editar evento de mouse de área
textArea.addMouseListener(
Nuevo adaptador de mouse (){
ratón público vacío liberado (evento de mouse e){ p>
if(e.getButton() == MouseEvent. botón 3)
popUpMenu.show(editMenu, e.getX(), e.gety());
}
se hizo clic en el vacío público (evento del mouse e){
if(e.getButton() == MouseEvent. Botón 1)
menú emergente .set visible(false);
}
}
);
} p>
openFile vacío privado. () {
If(isCurrentFileSaved()) {//¿Está el archivo en estado guardado?
open(); //Abrir
}
En caso contrario {
//Mostrar cuadro de diálogo
int option = jooptionpane . showconfirmdialog(
Vacío, "El archivo ha sido modificado. ¿Quieres guardarlo?",
"¿Guardar el archivo?", JOptionPane. Yes_No_option,
JOptionPane. WARNING_MESSAGE, null);
Cambiar (opcional) {
//Confirmar guardar archivo
caso JOptionPane. Yes_options:
save file(); //Guardar archivo
Break;
//Abandonar guardar archivo
case JOptionPane.
NO_Options:
abrir();
Romper
}
}
} p>
booleano privado isCurrentFileSaved(){
If(stateBar.getText().Equals("Sin modificar"){
Devuelve verdadero
} p>
De lo contrario {
Devuelve falso
}
}
Private void open() { p>
// fileChooser es una instancia de JFileChooser.
//Muestra el cuadro de diálogo de selección de archivos
int option = file selecter . >
p>
//El usuario presiona la tecla Enter
if(option == JFileChooser.APPROVE_OPTION) {
/*
*/
}
}
Private void saveFile() {
/*
TODO: Agregar código para guardar el archivo
*/
}
Privado void saveFileAs () {
/*
TODO: Agregar guardar como código
*/
}
Privado void closeFile(). {
//¿Se guarda el archivo?
if(isCurrentFileSaved()) {
//Libera los recursos de la ventana y luego cierra. el programa
.dispose();
}
De lo contrario, {
int option = jooptionpane . p>Vacío, "El archivo ha sido modificado. ¿Quiere guardarlo?",
"¿Guardar el archivo?", JOptionPane. Yes_No_option,
JOptionPane, null);
cambiar(opcional){
caso JOptionPane is_option:
guardar archivo();
romper;
caso JOptionPane.
NO_options:
dispose();
}
}
}
Corte vacío privado() {
textarea . cut();
barra de estado . settext(" modificado "
menú emergente .
p>
}
Copia nula privada(){
textarea .copiar();
menú emergente establecido visible(falso).
p>
}
Pegar vacío privado(){
textarea pegar()
barra de estado. settext(" modificado ");
menú emergente set visible(false
}
Proceso vacío privadoTextArea() {
barra de estado . settext(" modificado ");
}
Public static void main(String[] args) {
new JNotePadUI();
}
}