Javadabbadoo.org - Tu comunidad Java parlante Streams - Swing
Inicio | Cursos infosintesis.net liberados | Java SE | Editor de texto
Editor de texto
Paso 3: Operativa

Creación de un componente Swing especializado en explorar el sistema de ficheros de nuestro ordenador

Buscamos el componente JFileChooser en la paleta de componentes Swing y en vez de desplazarlo al interior de la parte gráfica del EditorPanel, lo colocamos en la zona que queda vacía por debajo del EditorPanel. A este componente lo vamos a llamar jfcEditor

NetBeans 6 - Crear componente JFileChooser - Palette | Swing Windows | File Chooser

como podemos observar en la ventana Inspector el nuevo componente está debajo de Other Components. Esto es así por que queremos que este componente sólo esté visible y operativo cuando en nuestro caso hagamos clic sobre el botón Abrir

NetBeans 6 - Ver componente JFileChooser - Inspector | Other Components | [JFileChooser]

En la ventana de propieadades indicaremos que la propiedad currentDirectory tiene el valor C:\isg\\j2se\prosjava\prostreams para que cuando el Objeto jfcEditor se haga visible muestre esta jerarquía de directorios directamente.

Este es el código generado por el IDE de la Clase EditorPanel

package paqstreams;

public class EditorPanel extends javax.swing.JPanel {
 public EditorPanel() {
  initComponents();
 }

 private void initComponents() {
  jfcEditor = new javax.swing.JFileChooser();
  pnlNorte = new javax.swing.JPanel();
  btnAbrir = new javax.swing.JButton();
  pnlCentro = new javax.swing.JScrollPane();
  
txaEditor = new javax.swing.JTextArea();
  jfcEditor.
setCurrentDirectory(new java.io.File("C:\\j2se\\prosjava\\prostreams"));

  setLayout(new java.awt.BorderLayout());

  pnlNorte.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

  btnAbrir.setIcon(new                     javax.swing.ImageIcon("C:\\j2se\\prosjava\\prostreams\\abrir.gif"));
  btnAbrir.setText("Abrir");
  
  pnlNorte.add(btnAbrir);

  add(pnlNorte, java.awt.BorderLayout.NORTH);

  pnlCentro.setViewportView(txaEditor);
  add(pnlCentro, java.awt.BorderLayout.CENTER);
 }

 private javax.swing.JButton btnAbrir;
 private javax.swing.JFileChooser jfcEditor;
 
private javax.swing.JScrollPane pnlCentro;
 private javax.swing.JPanel pnlNorte;
 private javax.swing.JTextArea txaEditor;
}

Interacción con un componente Swing especializado en explorar el sistema de ficheros de nuestro ordenador

Ahora vamos a crear un oyente de tipo ActionListener que sea avisado a través del método actionPerformed(...) cuando el usuario haga clic sobre el botón Abrir


Compara tus pasos para la obtención de este objetivo con la solución propuesta

Este es el código generado por el IDE de la Clase EditorPanel

package paqstreams;

public class EditorPanel extends javax.swing.JPanel {
 public EditorPanel() {
  initComponents();
 }

 private void initComponents() {
  pnlNorte = new javax.swing.JPanel();
  btnAbrir = new javax.swing.JButton();
  pnlCentro = new javax.swing.JScrollPane();
  txaEditor = new javax.swing.JTextArea();
  jfcEditor.setCurrentDirectory(new java.io.File("C:\\j2se\\prosjava\\prostreams"));

  setLayout(new java.awt.BorderLayout());

  pnlNorte.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

  btnAbrir.setIcon(new                     javax.swing.ImageIcon("C:\\j2se\\prosjava\\prostreams\\abrir.gif"));
  btnAbrir.setText("Abrir");
  btnAbrir.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    btnAbrirActionPerformed(evt);
   }
  });


  pnlNorte.add(btnAbrir);

  add(pnlNorte, java.awt.BorderLayout.NORTH);

  pnlCentro.setViewportView(txaEditor);
  add(pnlCentro, java.awt.BorderLayout.CENTER);
 }

 private void btnAbrirActionPerformed(java.awt.event.ActionEvent evt) {
  
 }


 private javax.swing.JButton btnAbrir;
 private javax.swing.JFileChooser jfcEditor;
 private javax.swing.JScrollPane pnlCentro;
 private javax.swing.JPanel pnlNorte;
 private javax.swing.JTextArea txaEditor;
}

Ahora tenemos que implementar el método btnAbrirActionPerformed(...). Para ello tenemos que tener en cuenta todo lo siguiente:

Compilamos la Clase EditorPanel, ejecutamos la Clase EditorMarc y utilizamos la aplicación para mostrar el contenido de un fichero de texto en el campo de texto de nuestro editor.


Compara tu código con la solución propuesta

Como estamos creando una aplicación de ventanas de sobremesa lo natural es que si ha habido un error de entrada/salida lo mostremos con un cuadro de diálogo de tipo modal al usuario que está utilizando la aplicación. Esto en Java se realiza a través del método showMessageDialog(...) de la Clase JOptionPane. Esta es la signatura de este método

public static void showMessageDialog(Component parentComponent,
                                     Object message,
                                     String title,
                                     int messageType)

Para forzar la visión de este error aunque no haya ningún problema de entrada/salida, la invocación momentaneamente la podemos realizar en la línea siguiente a la llamada al método cargarFichero(...)

Este es el cuadro de diálogo indicándonos que ha habido un error de entrada/salida

Ahora tenemos que añadir el código necesario en el método btnAbrirActionPerformed(...) de la Clase EditorPanel para mostrar el cuadro de diálogo en cuestión


Compara tu código con la solución propuesta

Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Marzo 2009
Dudas y comentarios: Foro [1-05] Streams
 
 
 
 
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...