English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Desarrollo de interfaz gráfica de usuario Java: Bloc de notas simple

在学习了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.

Te gustará