GRAFICA EN JAVA
1º CFGS Desarrollo de Aplicaciones
Multiplataforma
Descripción breve
Ejercicios realizados con los distintos métodos y clases proporcionados por AWT y SWING
para desarrollar una interfaz gráfica con Java
package Ejemplos_AWT_GUI;
import java.awt.*;
/**
*
* @author jaime
*/
public class Ventana1 extends Frame{
public Ventana1(){
super("Esta es la Ventana 1");
setLayout(new FlowLayout());
//setLayout(new FlowLayout(FlowLayout.LEFT)); FlowLayout a la izquierda
setSize(300,300);
setVisible(true);
}
package Ejemplos_AWT_GUI;
import java.awt.*;
/**
*
* @author jaime
*/
public class Ventana2 extends Frame {
setSize(300,300);
setVisible(true);
}
/**
*
* @author jaime
*/
public class Ventana3 extends Frame {
public Ventana3(){
super("Esta es la ventana 3");
setLayout(new GridLayout(3,3));
setSize(300,300);
setVisible(true);
}
package Ejemplos_AWT_GUI;
import java.awt.*;
/**
*
* @author jaime
*/
public class Chat extends Frame {
public Chat(){
super("Chat");
setLayout(new BorderLayout());
setSize(400,300);
setVisible(true);
}
p.add(new Label("Nick:"));
return p;
}
return p;
}
package Ejemplos_AWT_GUI;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class DemoListener1 extends Frame {
public DemoListener1(){
super("Demo");
setLayout(new FlowLayout());
new DemoListener1();
}
}
package Ejemplos_AWT_GUI;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class DemoListener2 extends Frame {
public DemoListener2(){
super("Demo");
setLayout(new FlowLayout());
setSize(200,150);
setVisible(true);
}
//Dimension de la ventana
Dimension dimVentana = getSize();
//Dimension de la pantalla
Dimension dimScreen = getToolkit().getScreenSize();
new DemoListener2();
}
}
Cuando el ratón se acerca para intentar darle al botón la ventana se mueve de forma
aleatoria por la pantalla
package Ejemplos_AWT_GUI;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class DemoListener3 extends Frame
{
private Button boton;
public DemoListener3(){
super("Demo");
setLayout(new FlowLayout());
@Override
public void mouseMoved(MouseEvent e)
{
setLocation(x,y);
}
}
@Override
public void mouseDragged(MouseEvent e){}
}
public static void main (String args[])
{
new DemoListener3();
}
}
Muestra como se cierra una ventana con AWT
package Ejemplos_AWT_GUI;
import java.awt.Frame;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class DemoListener4 extends Frame
{
public DemoListener4()
{
super("Demo");
//Relacionamos un WindowsListener con el Frame
addWindowListener(new EscuchaVentana());
setSize(200,150);
setVisible(true);
}
System.out.println("libero");
dispose();
System.out.println("Finalizar aplicacion");
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e){}
@Override
public void windowIconified(WindowEvent e){}
@Override
public void windowDeiconified(WindowEvent e){}
@Override
public void windowActivated(WindowEvent e){}
@Override
public void windowDeactivated(WindowEvent e) {}
new DemoListener4();
}
package Ejemplos_AWT_GUI;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class DemoListener5 extends Frame {
public DemoListener5()
{
super("Action Listner");
//Al norte
Panel pn = crearPNorte();
add(pn,BorderLayout.NORTH);
//Al centro
lista = new List();
add(lista,BorderLayout.CENTER);
setSize(300,300);
setVisible(true);
System.out.println("libero");
dispose();
System.out.println("Finalizar aplicacion");
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e){}
@Override
public void windowIconified(WindowEvent e){}
@Override
public void windowDeiconified(WindowEvent e){}
@Override
public void windowActivated(WindowEvent e){}
@Override
public void windowDeactivated(WindowEvent e) {}
p.add(new Label("Item:"));
return p;
}
new DemoListener5();
}
}
package Ejemplos_AWT_GUI;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class DemoListener6 extends Frame {
public DemoListener6()
{
super("Key Listener");
tf = new TextField(15);
add(tf);
setSize(350,100);
setVisible(true);
//Mando el cursor al TextField
tf.requestFocus();
addWindowListener(new EscuchaVentana());
}
lab.setText(Character.toString(c));
}
@Override
public void keyReleased(KeyEvent e){}
@Override
public void keyTyped(KeyEvent e){}
}
System.out.println("libero");
dispose();
System.out.println("Finalizar aplicacion");
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e){}
@Override
public void windowIconified(WindowEvent e){}
@Override
public void windowDeiconified(WindowEvent e){}
@Override
public void windowActivated(WindowEvent e){}
@Override
public void windowDeactivated(WindowEvent e) {}
new DemoListener6();
}
package Ejemplos_SWING_GUI;
import java.awt.*;
import javax.swing.border.Border;
/**
*
* @author jaime
*/
public class Calculadora extends Frame {
private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
private Button bDec,bMas,bMenos,bPor,bDiv,bIgual,bBorrar;
private TextField tfDisplay;
public Calculadora(){
super();
setLayout(new BorderLayout());
b0 = new Button("0");
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
bDec = new Button(".");
bMas = new Button("+");
bMenos = new Button("-");
bPor = new Button("*");
bDiv = new Button("/");
bIgual = new Button("=");
package Ejemplos_SWING_GUI;
import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
/**
*
* @author jaime
*/
public class ChatSwing extends JFrame
{
private JTextField tfNick;
private JTextField tfMensaje;
private JButton bLogin;
private JButton bLogout;
private JButton bEnviar;
private JList lstLog;
public ChatSwing()
{
//Pedimos el "panel de contencion" al JFrame
Container content = getContentPane();
//Seteamos el layout
content.setLayout(new BorderLayout());
setSize(400,300);
setVisible(true);
}
return p;
}
p.setBorder(titleBorder);
return p;
}
p.setBorder(titleBorder);
return p;
}
package Ejemplos_SWING_GUI.DemoJList;
import java.awt.*;
import java.util.Vector;
import javax.swing.*;
/**
*
* @author jaime
*/
public class DemoJList extends JFrame
{
public DemoJList()
{
super("Demo JList");
Container content = getContentPane();
content.setLayout(new BorderLayout());
content.add(scrollLista,BorderLayout.CENTER);
setSize(300,300);
setVisible(true);
return v;
}
package Ejemplos_SWING_GUI.DemoJList;
import java.util.Vector;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;
/**
*
* @author jaime
*/
public class VectorModel implements ListModel
{
private Vector<Object> datos;
package Ejemplos_SWING_GUI.DemoJListArray;
import java.util.Vector;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;
/**
*
* @author jaime
*/
public class ArrayModel implements ListModel
{
private Object[] datos;
package Ejemplos_SWING_GUI.DemoJListArray;
import java.awt.*;
import java.util.Vector;
import javax.swing.*;
/**
*
* @author jaime
*/
public class DemoJListArray extends JFrame {
public DemoJListArray()
{
super("Demo JListArray");
Container content = getContentPane();
content.setLayout(new BorderLayout());
content.add(scrollLista,BorderLayout.CENTER);
setSize(300,300);
setVisible(true);
package Ejemplos_SWING_GUI.DemoJTable;
import java.awt.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class DemoJTable extends JFrame
{
public DemoJTable()
{
super("Demo JTable");
Container content = getContentPane();
content.setLayout(new BorderLayout());
setSize(300,300);
setVisible(true);
}
private Object[][] obtenerMatrizDatos()
{
Object [][]mat ={
{"Columna 0","Columna 1","Columna 2","Columna 3"}
,{"Rojo","Verde","Azul","Violeta"}
,{"Amarillo","Naranja","Blanco","Gris"}
,{"Negro","Turquesa","Sepia","Rosa"}
,{"Salmon","Maiz","Marron","Fucsia"}
};
return mat;
}
package Ejemplos_SWING_GUI.DemoJTable;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
/**
*
* @author jaime
*/
public class MatrizModel implements TableModel
{
private Object[][] datos;
public MatrizModel(Object[][] datos)
{
this.datos = datos;
}
public Ejercicio1()
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame marco = new JFrame("Hola mundo Swing");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setSize(300,200);
marco.setVisible(true);
}
2.- SegundaVentana.java
package Ejercicios_Resueltos_GUI;
import javax.swing.*;
/**
*
* @author jaime
*/
public class Ejercicio2 {
Ejercicio2()
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame marco = new JFrame("Hola mundo swing");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setSize(300,200);
JLabel etiqueta = new JLabel("Guia practica Java J2SE1.5");
marco.add(etiqueta);
marco.setVisible(true);
}
Ejercicio3()
{
JFrame.setDefaultLookAndFeelDecorated(true);
marco = new JFrame("Primer evento");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
boton = new JButton("Pulsa este boton");
boton.addActionListener(this);
etiqueta = new JLabel("Sin pulsar: ");
JPanel panel = new JPanel(new GridLayout(0,1));
panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
panel.add(boton);
panel.add(etiqueta);
marco.add(panel,BorderLayout.CENTER);
marco.pack();
marco.setVisible(true);
}
4.- PrimerEventoVentana
package Ejercicios_Resueltos_GUI;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
/**
*
* @author jaime
*/
public class Ejercicio4 {
JTextArea areaTexto;
Ejercicio4()
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame marco = new JFrame("Eventos de ventana");
marco.addWindowListener(new GestionaVentana());
areaTexto = new JTextArea();
marco.add(areaTexto);
marco.setSize(200,100);
marco.setVisible(true);
}
public static void main(String args[])
{
Ejercicio4 e4 = new Ejercicio4();
}
class GestionaVentana extends WindowAdapter
{
@Override
public void windowClosing(WindowEvent e)
{
areaTexto.append("Cerrando la ventana\n");
System.exit(0);
}
@Override
public void windowActivated(WindowEvent e)
{
areaTexto.append("Activa la ventana\n");
}
@Override
public void windowOpened(WindowEvent e)
{
areaTexto.append("Abierta la ventana\n");
}
@Override
public void windowIconified(WindowEvent e)
{
areaTexto.append("Minimiza la ventana\n");
}
@Override
public void windowDeiconified(WindowEvent e)
{
areaTexto.append("Desplegando la ventana\n");
}
@Override
public void windowDeactivated(WindowEvent e)
{
areaTexto.append("Desactiva la ventana\n");
}
}
}
5.- Animacion.java
package Ejercicios_Resueltos_GUI;
import java.awt.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class Ejercicio5 extends JFrame implements Runnable
{
ImageIcon peli[] = new ImageIcon[8];
int indice = 0;
JLabel imagenS;
Thread hiloAnimacion;
Ejercicio5()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i = 1;i<peli.length;i++)
{
peli[i-1] = new ImageIcon("luna"+i+".png");
}
imagenS = new JLabel(new ImageIcon("luna1.png"));
add(imagenS, BorderLayout.CENTER);
hiloAnimacion = new Thread(this);
hiloAnimacion.start();
setTitle("Animación");
setSize(350,350);
setVisible(true);
}
Ejercicio6()
{
JFrame.setDefaultLookAndFeelDecorated(true);
marco= new JFrame("Aplicación simple");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setLayout(new BorderLayout());
marco.setSize(650,500);
marco.setIconImage(Toolkit.getDefaultToolkit().createImage("luna1.png"));
JFrame.setDefaultLookAndFeelDecorated(true);
listaBotones= new JButton[listaNombres.length];
panelP=new JPanel();
panelP.setLayout(new FlowLayout(FlowLayout.LEFT));
for(int i=0;i<listaNombres.length;i++)
{
listaBotones[i]=new JButton();
listaBotones[i].setIcon(new ImageIcon(listaNombres[i]+".png"));
listaBotones[i].setName(listaNombres[i]);
listaBotones[i].setToolTipText("Permite ejecutar la acción de "+listaNombres[i]);
listaBotones[i].setSelected(false);
listaBotones[i].addMouseListener(new VigilaBarraHerr());
panelP.add(listaBotones[i]);
}
marco.add(panelP,"North");
areaTexto = new JTextArea("");
marco.add(areaTexto,"Center");
marco.setVisible(true);
}
class VigilaBarraHerr extends MouseAdapter
{
@Override
public void mousePressed(MouseEvent e)
{
Component aux = e.getComponent();
}
@Override
public void mouseReleased(MouseEvent e)
{
Component aux = e.getComponent();
Frame ventana = new Frame();
if(aux.getName().equals("Abrir"))
areaTexto.append("Se ha pulsado el botón \"Abrir\"\n");
else if(aux.getName().equals("Archivar"))
areaTexto.append("Se ha pulsado el botón \"Archivar\"\n");
else if(aux.getName().equals("Nuevo"))
areaTexto.append("Se ha pulsado el botón \"Nuevo\"\n");
else
areaTexto.append("Botón desconocido\n");
}
}
public static void main(String args[])
{
Ejercicio6 ej6=new Ejercicio6();
}
}
7.- EventosRaton.java
package Ejercicios_Resueltos_GUI;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class Ejercicio7 {
JTextArea areaTexto;
JLabel coordenadasRaton;
JFrame marco;
JLabel tablero;
Ejercicio7()
{
JFrame.setDefaultLookAndFeelDecorated(true);
marco = new JFrame("Eventos del raton");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setLayout(new BorderLayout());
areaTexto = new JTextArea("Sin pulsar");
tablero = new JLabel(new ImageIcon("luna1.png"));
tablero.addMouseListener(new GestionaRaton());
tablero.addMouseMotionListener(new GestionaMovimientosRaton());
coordenadasRaton = new JLabel("Sin mover");
marco.setIconImage(Toolkit.getDefaultToolkit().createImage("luna2.png"));
marco.add("North",areaTexto);
marco.add("Center",tablero);
marco.add("South",coordenadasRaton);
marco.setVisible(true);
marco.pack();
}
class GestionaRaton extends MouseAdapter
{
@Override
public void mousePressed(MouseEvent e)
{
areaTexto.setText("Pulsado el botón del ratón en: X= "+
e.getX()+"Y= "+e.getY()+" Botón: "+e.getButton());
}
@Override
public void mouseReleased(MouseEvent e)
{
areaTexto.setText("Soltado el botón del ratón en: X= "+
e.getX()+"Y= "+e.getY()+" Botón: "+e.getButton());
}
@Override
public void mouseEntered(MouseEvent e)
{
areaTexto.setText("Entra el ratón en: X= "+
e.getX()+"Y= "+e.getY());
}
@Override
public void mouseExited(MouseEvent e)
{
areaTexto.setText("Sale el ratón en: X= "+
e.getX()+"Y= "+e.getY());
}
}
class GestionaMovimientosRaton extends MouseMotionAdapter
{
@Override
public void mouseDragged(MouseEvent e)
{
coordenadasRaton.setText(
"Arrastrado X= "+e.getX() + "Y= "+e.getY());
}
@Override
public void mouseMoved(MouseEvent e)
{
coordenadasRaton.setText(
"Movido X= "+e.getX() + "Y= "+e.getY());
}
}
public static void main(String args[])
{
Ejercicio7 ej7= new Ejercicio7();
}
}
8.- EventosMenu.java
package Ejercicios_Resueltos_GUI;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
/**
*
* @author jaime
*/
public class Ejercicio8 {
JTextArea areaTexto;
BarraMenu barraMenu;
JFrame marco;
public Ejercicio8()
{
JFrame.setDefaultLookAndFeelDecorated(true);
marco = new JFrame("Menu Swing");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setLayout(new BorderLayout());
barraMenu = new BarraMenu();
marco.setSize(300,300);
areaTexto = new JTextArea();
marco.add("Center",areaTexto);
marco.setIconImage(
Toolkit.getDefaultToolkit().createImage("luna1.png"));
marco.setJMenuBar(barraMenu);
marco.setVisible(true);
}
opcionCerrarF.setAccelerator(KeyStroke.getKeyStroke('C',Toolkit.getDefaultToolkit().getMenu
ShortcutKeyMask()));
menuFichero.add(opcionAbrirF);
menuFichero.add(opcionCerrarF);
menuFichero.add(opcionComprimirF);
menuFichero.add(opcionSalirF);
add(menuFichero);
add(menuEdición);
add(menuAyuda);
}
}
public class VigilaMenu implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String acción = e.getActionCommand();
areaTexto.setText(acción);
if(acción.equals("Salir"))
System.exit(0);
}
}
public static void main(String args[])
{
Ejercicio8 ej8 = new Ejercicio8();
}
}
9.- EventosTeclado.java
package Ejercicios_Resueltos_GUI;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
package Ejercicios_Resueltos_GUI.Ejercicios10_11_12;
import Ejercicios_Resueltos_GUI.Ejercicio9;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author jaime
*/
package Ejercicios_Resueltos_GUI.Ejercicios10_11_12;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
/**
* Ejercicio 11
* @author jaime
*/
package Ejercicios_Resueltos_GUI.Ejercicios10_11_12;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Ejercicio 12
* @author jaime
*/
Ejercicios 13,14,15 nos muestra una pantalla compuesta por dos botones, y dos paneles, los
botones nos permiten buscan un archivo .txt o una imagen y mostrarlos en los paneles uno
para los .txt y otro para las imagenes
package Ejercicios_Resueltos_GUI.Ejercicios_Resueltos_GUI.Ejercicios13_14_15;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class Ejercicio13
{
JButton insertaI,insertaS;
JFrame marco;
JTextArea areaTextoS = new JTextArea(" ");
JPanel panel1;
JScrollPane panelS2,panelS3;
JSplitPane division;
BarraBotones barraBotones;
Ejercicio13()
{
JFrame.setDefaultLookAndFeelDecorated(true);
marco = new JFrame("Panel dividido");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setLayout(new BorderLayout());
marco.setSize(400,400);
barraBotones = new BarraBotones(this);
panelS2 = new JScrollPane(areaTextoS);
panelS3 = new JScrollPane();
division = new JSplitPane(JSplitPane.VERTICAL_SPLIT,panelS2,panelS3);
division.setDividerLocation(100);
marco.add("North",barraBotones);
marco.add("Center",division);
marco.setIconImage(Toolkit.getDefaultToolkit().createImage("luna1.png"));
marco.setVisible(true);
}
public static void main(String args[])
{
Ejercicio13 ej13 = new Ejercicio13();
}
}
package Ejercicios_Resueltos_GUI.Ejercicios_Resueltos_GUI.Ejercicios13_14_15;
import java.io.*;
import javax.swing.*;
import java.awt.*;
/**
*
* @author jaime
*/
public class HerramientasFichero
{
boolean cargaFicheroTexto(String nombreFichero, JTextArea areaTexto)
{
try
{
String lineaTexto="";
File canal1 = new File(nombreFichero);
FileInputStream flujo2=null;
BufferedReader filtro1=null;
if(canal1.canRead())
{
flujo2 = new FileInputStream(canal1);
filtro1 = new BufferedReader(new InputStreamReader(flujo2));
while(lineaTexto != null)
{
lineaTexto=filtro1.readLine();
if(lineaTexto!=null)
{
areaTexto.append(lineaTexto+"\n");
}
}
}
filtro1.close();
return true;
}
catch (Exception ex)
{
System.out.println("Error en fichero");
return false;
}
}
boolean archivaFicheroTexto(String nombreFichero, JTextArea areaTexto)
{
try
{
String lineaTexto="";
FileWriter flS=new FileWriter(nombreFichero);
BufferedWriter fS=new BufferedWriter(flS);
fS.write(areaTexto.getText());
fS.newLine();
fS.close();
return true;
}
catch (Exception ex)
{
System.out.println("Error en el fichero");
return false;
}
}
}
package Ejercicios_Resueltos_GUI.Ejercicios_Resueltos_GUI.Ejercicios13_14_15;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
package Ejercicios_Resueltos_GUI;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author jaime
*/
public class Ejercicio16
{
ButtonGroup grupoC;
public Ejercicio16()
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame marco = new JFrame("Selecciona una opción y vota");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JDialog.setDefaultLookAndFeelDecorated(true);
JPanel panelP = creaPanelP();
panelP.setBorder(BorderFactory.createEmptyBorder(20,20,5,20));
marco.setIconImage(Toolkit.getDefaultToolkit().
createImage("cuestion.png"));
marco.add(panelP);
marco.pack();
marco.setVisible(true);
}
private JPanel creaPanelP()
{
JRadioButton[] casillasActivación = new JRadioButton[3];
grupoC = new ButtonGroup();
JButton botón = null;
casillasActivación[0] = new JRadioButton(
"<html><font color=blue>Si</font></html>");
casillasActivación[0].setActionCommand("Si");
casillasActivación[1] = new JRadioButton(
"<html><font color=blue>No</font></html>");
casillasActivación[1].setActionCommand("No");
casillasActivación[2] = new JRadioButton(
"<html><font color=blue>No sabe/No contesta</font></html>");
casillasActivación[2].setActionCommand("N/C");
for (int i = 0; i < 3; i++)
grupoC.add(casillasActivación[i]);
casillasActivación[0].setSelected(true);
botón = new JButton("Vota aquí");
botón.addActionListener(new GestionaEventos());
return panelSelección("<html><font color=red size =5> ¿Cree que deberían prohibir las
corridasde toros?",casillasActivación, botón);
}
private JPanel panelSelección(String título,JRadioButton[] casillasSel, JButton botón)
{
JPanel panelCas = new JPanel();
JLabel label = new JLabel(título);
panelCas.setLayout(new BoxLayout(panelCas, BoxLayout.PAGE_AXIS));
panelCas.add(label);
for(int i = 0; i < casillasSel.length; i++)
panelCas.add(casillasSel[i]);
JPanel panelSel = new JPanel(new BorderLayout());
panelSel.add(panelCas, BorderLayout.NORTH);
panelSel.add(botón, BorderLayout.SOUTH);
return panelSel;
}
1.-Realizar un programa, con una GUI, para gestionar una agenda con los datos: nombre,
teléfono, edad y email. De debe de crear un menú con las opciones:
package Ejercicio1;
/**
*
* @author jaime
*/
public class Principal {
public static void main (String args[])
{
FormularioPrincipal fp = new FormularioPrincipal();
}
}
package Ejercicio1;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.*;
/**
*
* @author jaime
*/
public class FormularioPrincipal extends JFrame implements ActionListener {
public FormularioPrincipal()
{
super("Agenda");
//-----Menus principales-----
marchivo = new JMenu("Archivo");
menu.add(marchivo);
add(nlist,BorderLayout.NORTH);
add(listaAmigos,BorderLayout.CENTER);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == nuevaagenda)
{
FormularioNuevaAgenda fm = new FormularioNuevaAgenda();
fm.setVisible(true);
}
if(e.getSource() == consultaragenda)
{
modelo.removeAllElements();//Limpiamos el jlist
Agenda a = new Agenda(listaAmigos,modelo);//Indicamos al contructor jlist y modelo
a.consultaFichero();
}
if(e.getSource() == insertaramigo)
{
FormularioInsertarAmigo fia = new FormularioInsertarAmigo();
fia.setVisible(true);
}
if(e.getSource() == buscaramigo)
{
FormularioBuscarAmigo fba = new FormularioBuscarAmigo();
fba.setVisible(true);
}
if(e.getSource() == modificaramigo)
{
FormularioModificarAmigo fma2 = new FormularioModificarAmigo();
fma2.setVisible(true);
}
if(e.getSource() == borraramigo)
{
FormularioBorrarAmigo fba = new FormularioBorrarAmigo();
fba.setVisible(true);
}
if(e.getSource() == borraragenda)
{
String rutaarchivo = "C:\\Users\\jaime\\Desktop\\agendagui.txt";
File f = new File(rutaarchivo);
}
}
package Ejercicio1;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.*;
/**
*
* @author jaime
*/
public class FormularioNuevaAgenda extends JFrame {
public FormularioNuevaAgenda()
{
super("Nueva Agenda");
//Poner pantalla en el centro
Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
int height = pantalla.height;
int width = pantalla.width;
setSize(width/2, height/2);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
setSize(300,200);
setVisible(true);
}
return p;
}
return p;
}
@Override
public void mouseReleased(MouseEvent e)
{
String rutaarchivo = "C:\\Users\\jaime\\Desktop\\agendagui.txt";
//Activamos textfield
tnombreyape.setEnabled(true);
tdireccion.setEnabled(true);
tlocalidad.setEnabled(true);
tedad.setEnabled(true);
tfechna.setEnabled(true);
tsalario.setEnabled(true);
@Override
public void mouseReleased(MouseEvent e)
{
Agenda a = new
Agenda(nombreyapellido,direccion,localidad,edad,fechnacimiento,sueldo);
package Ejercicio1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
/**
*
* @author jaime
*/
public class FormularioModificarAmigo extends JFrame {
public FormularioModificarAmigo()
{
super("Modificar Amigo");
//Introducimos layout
setLayout(new BorderLayout());
p.add(bmod,BorderLayout.EAST);
return p;
}
TitledBorder titleBorder =
BorderFactory.createTitledBorder(borde,"Modificacion");//Creamos un borde para el panel
return p;
}
p.add(aniadir);
return p;
}
@Override
public void mouseReleased(MouseEvent e)
{
bmod.setEnabled(false);
}
}
@Override
public void mouseReleased(MouseEvent e)
{
//Extraemos info de los textfield y lo pasamos a la clase,junto al contenido del textfield
amod a la hora de instanciar la clase
String nombreyapellido = tnombreyape.getText();
String direccion = tdireccion.getText();
String localidad = tlocalidad.getText();
String edad = tedad.getText();
String fechnacimiento = tfechna.getText();
String sueldo = tsalario.getText();
Agenda a = new
Agenda(nombreyapellido,direccion,localidad,edad,fechnacimiento,sueldo,amod);
}
}
}
package Ejercicio1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class FormularioInsertarAmigo extends JFrame{
private JLabel nombreyape,direccion,localidad,edad,fechna,salario;
private JTextField tnombreyape,tdireccion,tlocalidad,tedad,tfechna,tsalario;
private JButton insertar;
public FormularioInsertarAmigo()
{
super("Insertar Amigo");
//Introducimos layout
setLayout(new BorderLayout());
setSize(300,200);
setVisible(true);
}
return p;
}
@Override
public void mouseReleased(MouseEvent e)
{
//Extraemos los datos de los textfield y se lo pasamos al contructor a la hora de
instanciar la clase Agenda
String nombreyapellido = tnombreyape.getText();
String direccion = tdireccion.getText();
String localidad = tlocalidad.getText();
String edad = tedad.getText();
String fechnacimiento = tfechna.getText();
String sueldo = tsalario.getText();
Agenda a = new
Agenda(nombreyapellido,direccion,localidad,edad,fechnacimiento,sueldo);
package Ejercicio1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
/**
*
* @author jaime
*/
public class FormularioBuscarAmigo extends JFrame {
public FormularioBuscarAmigo()
{
super("Buscar Amigo");
return p;
}
p.setBorder(titleBorder);
return p;
}
@Override
public void mouseReleased(MouseEvent e)
{
String nombreyapellido = tnomyape.getText();//Obtenemos el contenido del textfield
}
}
}
package Ejercicio1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class FormularioBorrarAmigo extends JFrame {
public FormularioBorrarAmigo()
{
super("Borrar Amigo");
return p;
}
private JPanel crearPSur()
{
JPanel p = new JPanel(new FlowLayout(FlowLayout.CENTER));
@Override
public void mouseReleased(MouseEvent e)
{
String nombreyapellido = tnomyape.getText();//Obtenemos el contenido del textfield
if(opcion == JOptionPane.YES_OPTION)
{
a.bajaRegistro(rutaarchivo);//Si la respuesta es afirmativa se ejecutará el metodo,
realizando el borrado del registro
}
tnomyape.setText(null);//Borra el contenido del textfield
}
}
package Ejercicio1;
import java.io.*;
import java.util.*;
import javax.swing.*;
/**
*
* @author jaime
*/
public class Agenda {
public Agenda(){}
if(bw!=null)
{
bw.close();
fw.close();
}
}
catch(IOException e)
{
System.out.println("Error E/S");
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
FileWriter fw = new FileWriter(rutaarchivo,true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(","+direccion);
bw.write(","+localidad);
bw.write(","+edad);
bw.write(","+fechnacimiento);
bw.write(","+sueldo);
bw.newLine();
if(bw!=null)
{
bw.close();
fw.close();
}
}
catch(IOException e)
{
System.out.println("Error E/S");
}
catch(Exception e)
{
e.printStackTrace();
}
}
try
{
File original = new File(nombref);//Indicamos el fichero donde queremos eliminar un
registro ORIGINAL
File temporal = new File(original.getAbsolutePath()+".txt");//Creamos un fichero auxiliar
o temporal
//donde se encontrará una copia del original
//Procedemos a la lectura del archivo original y escritura del temporal, salvo el registro
a eliminar
while(texto!=null)//Mientras la cadena de texto sea distinto de null se seguirá
ejecutando el while
{
texto = br.readLine();
if(texto!=null)//Nos servirá para poder eliminar los valores null que se puedan ir
generando durante la lectura de la variable
{
//Obtenemos la posicion del nombre que queremos dar de baja
int pos = texto.indexOf(",");
String nombre = texto.substring(0,pos);
}
}
}
catch(FileNotFoundException e)
{
System.out.println("Fichero no encontrado");
}
catch(IOException e)
{
System.out.println("Error de programa");
}
}
if(nombre.equals(nombreyapellido))
{
modelo.addElement(texto);
lista.setModel(modelo);
}
}
}
br.close();
}
catch(FileNotFoundException e)
{
System.out.println("Fichero no encontrado");
}
catch(IOException e)
{
System.out.println("Error de programa");
}
}
//Procedemos a la lectura del archivo original y escritura del temporal, salvo el registro
a eliminar
while(texto!=null)//Mientras la cadena de texto sea distinto de null se seguirá
ejecutando el while
{
texto = br.readLine();
if(texto!=null)//Nos servirá para poder eliminar los valores null que se puedan ir
generando durante la lectura de la variable
{
}
bw.write(texto);//Escribimos nombre en el archivo temporal
bw.newLine();
}
}
}
catch(FileNotFoundException e)
{
System.out.println("No se ha encontrado el archivo ");
}
catch(IOException e)
{
System.out.println("Error E/S");
}
catch(Exception e)
{
System.out.println("Error de programa");
}
}
}
Diagrama de clases
2.- Busca información sobre herramientas para desarrollar interfaces gráficas para Java.
Url: https://www.formdev.com/
JVider: es una sencilla herramienta de diseño gráfico que permite crear un entorno visual para
todo tipo de aplicaciones Java Swing y applets.
Url: http://www.jvider.com/
3.- Partiendo de las clases de la apliación de fichas de libros GestionaBiblioteca, crear una
apliación de nombre FicheroLibros con interfaz gráfico que sustituya la clase principal
GestionaBiblioteca y reutilice las clases LectorF, Biblioteca y Libro. Crear una barra de botones
que tengan las siguientes
funciones:
Utiliza una herramienta gráfica (por ejemplo el pluging WindowBuilder ) para realizarlo.
package Ejercicio3;
import java.io.*;
/**
*
* @author jaime
*/
public class BibliotecaGUI extends javax.swing.JFrame {
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLautor.setText("Autor:");
jLtitulo.setText("Titulo:");
jLisbn.setText("ISBN:");
ttitulo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ttituloActionPerformed(evt);
}
});
bInsertar.setText("Insertar");
bInsertar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
bInsertarMouseReleased(evt);
}
});
bSiguiente.setText("Siguiente");
bSiguiente.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
bSiguienteMouseReleased(evt);
}
});
bAtras.setText("Atras");
bBorrar.setText("Borrar");
bBorrar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
bBorrarMouseReleased(evt);
}
});
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLtitulo)
.addComponent(jLisbn))
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ttitulo, javax.swing.GroupLayout.PREFERRED_SIZE, 297,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tisbn)))
.addGroup(layout.createSequentialGroup()
.addComponent(bInsertar)
.addGap(18, 18, 18)
.addComponent(bSiguiente)
.addGap(27, 27, 27)
.addComponent(bAtras)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bBorrar)))
.addGroup(layout.createSequentialGroup()
.addComponent(jLautor)
.addGap(18, 18, 18)
.addComponent(tautor, javax.swing.GroupLayout.PREFERRED_SIZE, 297,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(77, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLautor)
.addComponent(tautor, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLtitulo)
.addComponent(ttitulo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLisbn)
.addComponent(tisbn, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 35,
Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bInsertar)
.addComponent(bSiguiente)
.addComponent(bAtras)
.addComponent(bBorrar))
.addGap(25, 25, 25))
);
pack();
}// </editor-fold>
bib.aniadirLibro(lib);
bib.archivaL(bw);
}
catch(Exception e)
{
System.out.println("Error de programa");
}
tautor.setText(null);
ttitulo.setText(null);
tisbn.setText(null);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(BibliotecaGUI.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(BibliotecaGUI.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(BibliotecaGUI.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(BibliotecaGUI.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
}
//</editor-fold>
package Ejercicio3;
/**
*
* @author jaime
*/
/** La clase Biblioteca modeliza una estanteria de una biblioteca*/
import java.io.*;
import javax.swing.JOptionPane;
public class Biblioteca
{
Libro estanteria[];
public Biblioteca(int nMaxLibros)
{
estanteria = new Libro[nMaxLibros];
}
return true;
}
}
return false;
}
}
return false;
}
public Libro localizaLibro(String iSBN)
{
for(int i=0; i<estanteria.length; i++)
if( estanteria[i] != null)
if(estanteria[i].obtenerISBN().equals(iSBN))
return estanteria[i];
return null;
}
public void listaLibros()
{
Libro aux[]= new Libro[estanteria.length];
for(int i=0; i<estanteria.length; i++)
if(estanteria[i] != null)
aux[i]= estanteria[i];
ordena(aux);
for(int i =0; i<aux.length; i++)
if(aux[i] != null)
System.out.println(aux[i]);
}
/**Compara textos para ordenación*/
public int comparaTextos(String t1, String t2)
{
int longitud;
t1=t1.toUpperCase();
t2=t2.toUpperCase();
if(t1.length()>t2.length())
longitud = t2.length();
else
longitud = t1.length();
package Ejercicio3;
/**
*
* @author jaime
*/
import java.util.*;
import java.io.*;
public class LeerFichero
{
private String rutaf="C:\\Users\\jaime\\Desktop\\libro.txt";
private String texto="";
return texto;
}
}
package Ejercicio3;
/**
*
* @author jaime
*/
import java.io.*;
public class Libro
{
private String autor,titulo,iSBN;
@Override
public String toString() {
return(autor+","+titulo+","+iSBN).toUpperCase();
}