Semana 12 interfaces gráficas de usuario

6

Click here to load reader

Transcript of Semana 12 interfaces gráficas de usuario

Page 1: Semana 12   interfaces gráficas de usuario

CLASE PANTALLA

package org.proyecto;

import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import java.util.Vector;

public class Pantalla extends JFrame{

StringBuffer lee1;String [] recibe;Vector vector;

public Pantalla(){

// Creando los objetos del menú.menubarra = new MenuBar();menu1 = new Menu();menu2 = new Menu();about = new MenuItem();salir = new MenuItem(); material1 = new MenuItem();

// Creando objetos para los botones de Eliminar y Reservar.eliminar = new Button("Eliminar");etiqueta = new Label();boton2 = new Button("Reservar");

// Listado de libros y revistas.lista = new List();lista.setMultipleMode(false);setTitle("Mi Biblioteca");setResizable(false);

// Texto en los menús.menu1.setLabel("Registro");menu2.setLabel("Ayuda");about.setLabel("Acerca de...");salir.setLabel("Salir");

material1.setLabel("Agregar Material");

// Ir a las ventanas de los menús. menu1.add(material1); menu2.add(about); menu2.add(salir); menubarra.add(menu1); menubarra.add(menu2);

// Muestra la barra del menú. // También se definen los tamaños de los botones y etiquetas. setMenuBar(menubarra); eliminar.setBounds(100,380,100,30);

getContentPane().add(eliminar);etiqueta.setBounds(200,25,200,30);etiqueta.setText("Listado de libros y/o revistas:");getContentPane().add(etiqueta);boton2.setBounds(400,380,100,30);getContentPane().add(boton2);lista.setBounds(40,60,520,250);getContentPane().add(lista);contra = new TextField();contra.setBounds(400,430,100,25);getContentPane().add(contra);labe = new Label("ID:");labe.setBounds(370,430,30,25);

Page 2: Semana 12   interfaces gráficas de usuario

getContentPane().add(labe);

// Con addWindowListener se registra un receptor de eventos en la ventana. addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent evt) {exitForm(evt);

}});

// Con el addActionListener se asocia el evento del clic del mouse con el item del menú.

salir.addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(java.awt.event.ActionEvent evt){

salida(evt);}

});

material1.addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(java.awt.event.ActionEvent evt){

materia1(evt);}

});

boton2.addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(java.awt.event.ActionEvent evt){

reserva(evt);}

});

eliminar.addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(java.awt.event.ActionEvent evt){

elimina(evt);}

});

// Aquí se crea la ventana principal con sus dimensiones y color de fondo.// También se crea un archivo para almacenar los datos de los préstamos.setBackground((java.awt.Color)

javax.swing.UIManager.getDefaults().get("Button.background"));Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();setSize(new java.awt.Dimension(600, 550));setLocation((screenSize.width-786)/2,(screenSize.height-550)/2);getContentPane().setLayout(null);setVisible(true);lugar1="C:\\tarea\\archivos\\material.datos";lee1 = readFile(lugar1);datos1 = lee1.toString();separaString1(datos1);

} // Fin del public pantalla.

public void separaString1(String cadena){String eval,valor;int i,j=0;

for(i=0;i<cadena.length();i++){eval = cadena.substring(i,i+1);if(eval.equals(",")){

valor = cadena.substring(j,i+1);j=i+1;lista.addItem(valor);

}}

}

Page 3: Semana 12   interfaces gráficas de usuario

// En el método main creamos la pantalla.public static void main (String [] args){

new Pantalla();}

// Aquí se guarda en el archivo la información y salimos del sistema.private void salida(java.awt.event.ActionEvent evt){

String nuevo="";

for(int i=0;i<lista.getItemCount();i++){nuevo = nuevo + lista.getItem(i);

}saveFile(lugar1,nuevo,false);System.exit(0);

}

// Salimos de la pantallaprivate void exitForm(WindowEvent evt){

String nuevo="";

for(int i=0;i<lista.getItemCount();i++){nuevo = nuevo + lista.getItem(i);

}saveFile(lugar1,nuevo,false);System.exit(0);

}

// Método para reservar o prestar el libro o revista.private void reserva(ActionEvent evt){

if(contra.getText().equals("")){JOptionPane.showMessageDialog(getParent(),"Debe digitar el ID");

}else{

String nuevo;String linea = lista.getSelectedItem();int i = lista.getSelectedIndex();String valida = linea.substring(linea.length()-6,linea.length()-1);

if(valida.equals("LIBRE")){nuevo = linea.substring(0,linea.length()-6)+contra.getText()

+",";contra.setText("");lista.replaceItem(nuevo,i);

}else{

JOptionPane.showMessageDialog(getParent(),"Ese material ya esta reservado");

}}

}

// Método para eliminar de la lista los libros o revistas.private void elimina(ActionEvent evt){

String linea = lista.getSelectedItem();lista.remove(linea);

}

// Ventana para agregar un libro o revista.private void materia1(java.awt.event.ActionEvent evt){

dialogo2 = new Dialog(this);texto21 = new TextField();texto22 = new TextField();texto23 = new TextField();label21 = new Label("Tipo:");label22 = new Label("Codigo:");label23 = new Label("Nombre:");

Page 4: Semana 12   interfaces gráficas de usuario

label24 = new Label("Autor:");ok32 = new Button("Aceptar");choice2 = new Choice();dialogo2.setTitle("Agregar Material");dialogo2.setLocation(250,150);dialogo2.setSize(350,400);dialogo2.setLayout(null);dialogo2.show();texto21.setBounds(150,150,150,20);texto22.setBounds(150,180,150,20);texto23.setBounds(150,210,150,20);label21.setBounds(70,50,60,20);label22.setBounds(70,150,60,20);label23.setBounds(70,180,60,20);label24.setBounds(70,210,60,20);ok32.setBounds(125,320,100,30);choice2.setBounds(150,50,150,25);choice2.addItem("libro");choice2.addItem("revista");dialogo2.add(texto21);dialogo2.add(texto22);dialogo2.add(texto23);dialogo2.add(label21);dialogo2.add(label22);dialogo2.add(label23);dialogo2.add(label24);dialogo2.add(ok32);dialogo2.add(choice2);

// Con addWindowListener se registra un receptor de eventos en la ventana. dialogo2.addWindowListener(new java.awt.event.WindowAdapter(){

public void windowClosing(java.awt.event.WindowEvent evt){dialogo2.setVisible(false);

dialogo2.dispose(); } });

// Con el addActionListener se asocia el evento del clic del mouse con el item del menú.

ok32.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){

String material = choice2.getSelectedItem()+";"+texto21.getText()+";"+texto23.getText()+";"+texto22.getText()+";"+"LIBRE"+",";

dialogo2.setVisible(false);dialogo2.dispose();lista.addItem(material);

}});

} // Fin de la ventana agregar material.

// Método para abrir el archivo con la información.public StringBuffer readFile(String filename){

StringBuffer sb = new StringBuffer();try{

File file = new File(filename);String line = null;BufferedReader br = new BufferedReader(new FileReader(file));

while ((line = br.readLine()) != null){sb.append(line);

}br.close();

}catch (FileNotFoundException fnfe){}catch (IOException ioe){}return sb;

}

// Método para guardar el archivo con la información.

Page 5: Semana 12   interfaces gráficas de usuario

public void saveFile(String filename, String dataToWrite, boolean append){try{

FileWriter fw = new FileWriter(filename, append);fw.write(dataToWrite);fw.close();

}catch (IOException ioe){}

}

public String replaceValues (String path, String [] valuesToSearch, String [] valuesToReplace){

String line;StringBuffer textComplete = new StringBuffer();String tempText = "";

try{BufferedReader br = new BufferedReader(new FileReader(path));while ((line = br.readLine()) != null){

textComplete.append(line);}br.close();

}catch (FileNotFoundException fnfe){}catch (IOException ioe){}

for (int i=0; i<valuesToSearch.length; i++){int position = textComplete.indexOf(valuesToSearch[i]);if (position>0 ){

tempText = textComplete.substring(0,position);tempText = tempText + valuesToReplace[i] +

textComplete.substring(position+valuesToSearch[i].length(),textComplete.length());textComplete = new StringBuffer(tempText);

}}return tempText;

}

// Declaración de variables.private Menu menu1;

private Menu menu2; private MenuBar menubarra; private MenuItem about; private MenuItem salir; private MenuItem material1; private Button eliminar; private Label etiqueta; private Button boton2; private Dialog dialogo2; private TextField texto21; private TextField texto22; private TextField texto23; private Label label21; private Label label22; private Label label23; private Label label24; private Button ok32; private Choice choice2; private List lista; private String lugar1,datos1; private TextField contra; private Label labe;

} // Fin de la clase Pantalla.