English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在学习了Java事件之后,自己编写了一个非常简单的记事本。使用了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。
代码如下:
package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing;*; import java.awt;*; import java.awt.event;*; import java.io;*; public class MenuText { //定义组件: JFrame f; MenuBar mb; //菜单栏 Menu mu; //菜单 JTextArea jta; MenuItem openItem, saveItem, closeItem; //子菜单 FileDialog openDia, saveDia; //弹出保存和打开对话框 File file; //构造函数 public MenuText() { //调用初始化函数 init(); } //初始化组件操作 public void init() { f = new JFrame("简易记事本"); mb = new MenuBar(); mu = new Menu("文件"); openItem = new MenuItem("打开"); saveItem = new MenuItem("保存"); closeItem=new MenuItem("Salir"); jta=new JTextArea(); f.add(jta); //Agregar mu.add(openItem); mu.add(saveItem); mu.add(closeItem); mb.add(mu); f.setMenuBar(mb); openDia=new FileDialog(f, "Abrir", FileDialog.LOAD); saveDia=new FileDialog(f, "Guardar", FileDialog.SAVE); //Establecer propiedades de JFrame f.setBounds(200, 300, 500, 400); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); //Llamar a la función de evento event(); } //Función de evento, manejar el evento public void event() { //Opción de abrir openItem.addActionListener(new ActionListener()) { @Override public void actionPerformed(ActionEvent e) { //Llamar al método de abrir archivo openFile(); } }); //Opción de guardar saveItem.addActionListener(new ActionListener()) { @Override public void actionPerformed(ActionEvent e) { //Llamar al método de guardar archivo. saveFile(); } }); //Agregar un evento de área de texto, es decir, pulsar Ctrl+S se puede guardar //Debido a que hay varios métodos para la escucha de eventos de teclado, y solo necesitamos uno de ellos, por lo que se puede usar el adaptador KeyAdapter, //Por lo tanto, solo es necesario implementar un método. jta.addKeyListener(new KeyAdapter()) { //Método de pulsación de tecla public void keyPressed(KeyEvent e){ if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S) { //Llamar al método de guardar archivo. saveFile(); //JOptionPane.showMessageDialog(null, "¡Exacto!"); } } }); //Cerrar opción closeItem.addActionListener(new ActionListener()) { @Override public void actionPerformed(ActionEvent e) { //Salir del sistema salir del sistema (0); } }); } //método de abrir texto public void openFile() { openDia.setVisible (true); //configurar para que se muestre //obtener la ruta y el nombre de archivo String dirPath = openDia.getDirectory(); String fileName = openDia.getFile(); //prevenir errores al hacer clic en cancelar si (dirPath == null || fileName == null) volver; jta.setText (" "); //limpiar el área de texto file = new File (dirPath, fileName); //crear objeto archivo //leer datos por línea, mostrar en el área de texto try { BufferedReader br = new BufferedReader (new FileReader (file)); String linea = null; mientras ((linea = br.readLine()) != null) { jta.append (linea+"\r\n"); } cerrar br; } catch (IOException ex) { lanzar una nueva excepción RuntimeException("lectura fallida"); } } //método de guardar texto. public void saveFile() { //primero determinar si el archivo existe si (file == null) { hacer visible saveDia (true); String dirPath = saveDia.getDirectory(); String fileName = saveDia.getFile(); //prevenir errores al hacer clic en cancelar si (dirPath == null || fileName == null) volver; //debido a que el archivo no existe. Por lo tanto, se necesita crear el objeto file file = new File (dirPath, fileName); } //escribir datos en el archivo try { BufferedWriter bw = new BufferedWriter (new FileWriter (file)); String info = jta.getText(); //obtener la información del área de texto escribir bw (info); //operación de escritura refrescar bw; cerrar bw; } atrapar (IOException e1) { lanzar una nueva excepción RuntimeException(); } } public static void main(String[] args) { //Crear objeto new MenuText(); } }
El resultado de la ejecución se muestra en la figura a continuación:
Las funcionalidades que realiza este programa incluyen:
)1) se puede abrir algún archivo y se puede editar
)2) se puede guardar el archivo editado
)3) se puede usar Ctrl+S para guardar el texto
)4) puede hacer clic en closeItem para salir del programa.
EnImplementar funcionalidad3En este momento, se ha agregado un KeyListener al área de texto, utilizando el adaptador KeyAdapter para realizar la escucha. Pero ahora se necesita una escucha combinada, es decir, se debe activar la operación de guardado cuando se pulsen Ctrl y S.
Java API proporciona métodos correspondientes para la escucha combinada.
Encuentre el padre directo de la clase KeyEvent, que es la clase InputEvent. Como se muestra en la figura:
Consulte los métodos de la clase InputEvent, como se muestra a continuación:
El objeto e de la clase KeyEvent, que es una subclase de la clase InputEvent, puede llamar directamente al método anterior para realizar la�断定。El método isControlDown() se utiliza para determinar si se ha pulsado la tecla Ctrl. Por ejemplo, en el programa if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S) se realiza una judgment combinada.
Esto es todo el contenido del artículo, espero que sea útil para su aprendizaje y que todos nos apoyen en el tutorial de alarido.
Declaración: El contenido de este artículo se ha obtenido de la red, pertenece a los autores originales, el contenido se ha proporcionado y subido por los usuarios de Internet de manera autónoma. Este sitio no posee los derechos de propiedad, no se ha realizado una edición humana y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar y proporcionar pruebas relevantes. Si se verifica, el sitio eliminará inmediatamente el contenido sospechoso de infracción.