⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java11.htm

📁 E-books about Java Programing in Spanish
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML>
<HEAD>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0z">
<TITLE>Untitled</TITLE>
</HEAD>
<BODY background=/iconos/1.gif  TEXT=000000 LINK=FF0000 VLINK=A62A2A>

<H1>Volviendo al AWT<BR>
</H1>
<P>
Para aprender un poquito m&aacute;s sobre la biblioteca gr&aacute;fica
(AWT), vamos a modificar nuestro &uacute;ltimo programa para usar
men&uacute;s.
<P>
Vamos a volver a poner todo el c&oacute;digo (que ampliamos para
usar como applet o aplicaci&oacute;n local) marcando las diferencias
m&aacute;s notables:<BR>
<PRE>
<FONT SIZE=2>/*
// ----- Archivo:	Ejemplo14.java
*/

import java.io.*;
import java.awt.*;
import java.applet.*;

public class Ejemplo14 extends Applet {

  public void init() {
	new Ventana14(<B>true</B>);			// con &quot;true&quot; avisamos que es applet
  }

<B>  public static void main(String args[]) {</B>	// para usarlo como aplicaci&oacute;n
<B>    Ventana14 v14 = new Ventana14(false);</B>	// con &quot;false&quot; avisamos que no es applet
<B>  }
</B>}

/*
// -------- Esta clase es la que en realidad hace el trabajo
*/

class Ventana14 extends Frame {

  TextArea	contenido;
  <B>boolean	enApplet;</B>		// para indicar si lo llamamos como applet
  <B>String		nombreArchivo;</B>	// para guardar el nombre del archivo abierto
  <B>MenuItem	mArchivoAbrir;</B>	// ACA ESTAN LOS ITEMS DE LOS MENUS
  <B>MenuItem	mArchivoGrabar;</B>	//	.
  <B>MenuItem	mArchivoSalir;</B>		//	.
  <B>MenuItem	mEditCortar;</B>		//	.
  <B>MenuItem	mEditCopiar;</B>		//	.
  <B>MenuItem	mEditPegar;</B>		//	.
  <B>MenuItem	mEditTodo;</B>		//	v
  <B>String		clipboard;</B>		// buffer para cortar y pegar
  <B>boolean	editado = false;</B>	// ac&aacute; indicamos si modificamos el archivo

  Ventana14(<B>boolean enApp</B>) {

    super(&quot;Ejemplo de E/S&quot;);
<B>    enApplet = enApp;</B>					// recordamos si es applet o no

<B>    Menu menuArchivo = new Menu(&quot;&amp;Archivo&quot;);</B>	// CREAMOS LOS MENUS!!!
<B>    mArchivoAbrir = new MenuItem(&quot;&amp;Abrir...&quot;);
    mArchivoGrabar = new MenuItem(&quot;&amp;Grabar...&quot;);
    mArchivoSalir = new MenuItem(&quot;&amp;Salir&quot;);
    menuArchivo.add(mArchivoAbrir);
    menuArchivo.add(mArchivoGrabar);
    menuArchivo.add(new MenuItem(&quot;-&quot;));
    menuArchivo.add(mArchivoSalir);

    Menu menuEdit = new Menu(&quot;&amp;Edit&quot;);
    mEditCortar = new MenuItem(&quot;Cor&amp;tar&quot;);
    mEditCopiar = new MenuItem(&quot;&amp;Copiar&quot;);
    mEditPegar = new MenuItem(&quot;&amp;Pegar&quot;);
    mEditTodo = new MenuItem(&quot;&amp;Seleccionar todo&quot;);
    menuEdit.add(mEditCortar);
    menuEdit.add(mEditCopiar);
    menuEdit.add(mEditPegar);
    menuEdit.add(new MenuItem(&quot;-&quot;));
    menuEdit.add(mEditTodo);

    MenuBar barraMenu = new MenuBar();
    barraMenu.add(menuArchivo);
    barraMenu.add(menuEdit);
    setMenuBar(barraMenu);

</B>    contenido = new TextArea();			// solo pongo una ventana de texto
    add(&quot;Center&quot;,contenido);
    pack();
    show();

<B>    clipboard = new String(&quot;&quot;);</B>			// clipboard vac&iacute;o,
<B>    mEditPegar.disable();</B>			// nada para pegar,
<B>    mArchivoGrabar.disable();</B>			// nada para grabar
  }

  public boolean handleEvent(Event e) {
    if ((e.id==Event.WINDOW_DESTROY)||(<B>e.target==mArchivoSalir</B>)) {
	<B>if (editado) System.out.println(&quot;Pedir confirmaci&oacute;n!\n&quot;);</B>	// deber&iacute;a confirmar
								// si se quiere ir sin grabar!
	if (enApplet) dispose();
	else System.exit(0);
    }
<B>    if (e.target==mArchivoAbrir) CargarArchivo();</B>		// ac&aacute; proceso selecciones
<B>    if (e.target==mArchivoGrabar) GrabarArchivo();</B>		// de men&uacute;
<B>    if (e.target==mEditCortar) {
	clipboard = contenido.getSelectedText();
	mEditPegar.enable();
	contenido.replaceText(&quot;&quot;,contenido.getSelectionStart(),contenido.getSelectionEnd());
	editado=true;
    }
    if (e.target==mEditCopiar) {
clipboard = contenido.getSelectedText();
mEditPegar.enable();
    }
    if (e.target==mEditPegar) {
	contenido.replaceText(&quot;&quot;,contenido.getSelectionStart(),contenido.getSelectionEnd());
	contenido.insertText(clipboard,contenido.getSelectionStart());
	editado=true;
    }
    if (e.target==mEditTodo) contenido.selectAll();
    if ((e.id==Event.KEY_PRESS)&amp;&amp;(e.target==contenido)) editado=true;
    mArchivoGrabar.enable(editado);
</B>    return super.handleEvent(e);
  }

  void CargarArchivo() {
    FileInputStream	fptr;
    DataInputStream	f;
<B>    String		linea = null;
    if (editado) System.out.println(&quot;Pedir confirmaci&oacute;n!\n&quot;);
</B>    <B>FileDialog fd = new FileDialog(this,&quot;Abrir...&quot;,FileDialog.LOAD);</B>	// elijo archivo
<B>    fd.show();</B>					// usando el di&aacute;logo est&aacute;ndar del sistema!
<B>    nombreArchivo = fd.getFile();
</B>    try {
      fptr = new FileInputStream(nombreArchivo);
      f = new DataInputStream(fptr);
      <B>contenido.setText(&quot;&quot;);</B>		// vac&iacute;o la ventana antes de cargar nuevo archivo
      do {
        linea = f.readLine();
        if (linea!=null) contenido.appendText(linea+&quot;\n&quot;);
      } while (linea != null);
      fptr.close();
      <B>editado=false;</B>			// archivo nuevo -&gt; no editado
    }
    catch (FileNotFoundException e) {
	new Error14(&quot;El archivo no existe!&quot;);
    }
    catch (IOException e) { 
	new Error14(&quot;Error leyendo archivo!&quot;);
    }
    catch (NullPointerException e) {
	;
    }
  }

  void GrabarArchivo() {
    FileOutputStream	fptr;
    DataOutputStream	f;
<B>    FileDialog fd = new FileDialog(this,&quot;Grabar...&quot;,FileDialog.SAVE);</B>	// grabo archivo
<B>    fd.setFile(nombreArchivo);</B>			// usando el di&aacute;logo est&aacute;ndar del sistema!
<B>    fd.show();
    nombreArchivo = fd.getFile();
</B>    try {
      fptr = new FileOutputStream(nombreArchivo);
      f = new DataOutputStream(fptr);
      f.writeBytes(contenido.getText());
      fptr.close();
<B>      editado=false;</B>				// reci&eacute;n grabado -&gt; no editado
    }
    catch (IOException e) { 
	new Error14(&quot;Error grabando archivo!&quot;);
    }
    catch (NullPointerException e) {
	;
    }
  }
}

/*
// ------- Para mostrar los errores...
*/

class Error14 extends Frame {
  
  Error14(String error) {
	add(&quot;Center&quot;,new Label(error));
	add(&quot;South&quot;, new Button(&quot;Ok&quot;));
	pack();
	show();
  }

  public boolean handleEvent(Event e) {
    dispose();
    return super.handleEvent(e);
  }
}<BR>
</FONT>
</PRE>
<H2>Men&uacute; a la Java<BR>
</H2>
<P>
Bueno, lo primero que vamos a ver son los men&uacute;s.
<P>
La barra de men&uacute; est&aacute; compuesta por men&uacute;es,
que a su vez est&aacute;n compuestos de &iacute;tems (que pueden
tambi&eacute;n ser men&uacute;es). Por ejemplo la barra de men&uacute;
la declaramos con:<BR>
<PRE>
<FONT SIZE=2>MenuBar barraMenu = new MenuBar();<BR>
</FONT>
</PRE>
<P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -