Interfaces gráficas de usuario: Java Swing

Cuando se creo swing se hizo con el objetivo de evitar tener que usar los componentes gráficos nativos de cada sistema operativo, y crear una interfaz que fuera la misma en cualquier sistema operativo. Además el tener que usar los componentes nativos generaba problemas ya que no se sabe como se comporta la aplicación según el sistema operativo en el que fuese lanzado, al estar swing enteramente desarrollado en Java aumenta su portabilidad asegurando un comportamiento idéntico en diferentes plataformas.

Para crear una interfaz gráfica con swing se siguen los siguientes pasos:
1. Declarar los componentes que usaremos y crearlas.
2. Añadirlas al contenedor o al componente correspondiente.
3. Registrar los eventos que puedan ocurrir ( lo explicare en otro post ).

Primero hay que crearse una ventana pero la diferencia es que para poder añadir los componentes hace falta crearse un contenedor con la clase Container que almacene los componentes. Para crear un contenedor se pone:
Container contenedor=ventana.getContentPane();

En swing también existen los paneles de awt pero se llaman JPanel y tiene la misma funciones que los Panel .
JPanel panel=new JPanel();
En swing hay mas tipos de paneles como JScrollPane ( muestra barras de desplazamiento ), JRootPane , etc. Son paneles para mejorar un poco los componentes que se le añaden o para dar alguna función extra.

A continuación tenéis un ejemplo de interfaz gráfica con swing:

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import javax.swing.event.*;
  5. class MiListasFrames {
  6. //declareamos
  7. private Container contenedor;
  8. //Ventana
  9. private JFrame ventana;
  10. //etiqueta
  11. private JLabel etiqueta;
  12. //campo texto
  13. private JTextField texto;
  14. //eleccion
  15. private JComboBox marcas;
  16. //lista
  17. private JList lista;
  18. String complementos[]={ “ABS”,“Aire-Acod”,“Air-Bag”,“Direc-Asis”,“EE”,“Pintura met.”,“Radio” };
  19. boolean marcaEligida=false;
  20. public MiListasFrames() {
  21. //crear ventana
  22. ventana=new JFrame();
  23. ventana.setSize(330,194);
  24. ventana.setTitle(“Concesionario”);
  25. contenedor=ventana.getContentPane();
  26. //crear etiqueta
  27. etiqueta=new JLabel(“Selecciona marca y equipamiento”);
  28. //crear campo texto
  29. texto=new JTextField();
  30. texto.setEnabled(false);
  31. //crear eleccion
  32. marcas=new JComboBox();
  33. marcas.setFont(new Font(“Arial”,Font.PLAIN,10));
  34. marcas.addItem(“Citroen”);
  35. marcas.addItem(“Fiat”);
  36. marcas.addItem(“Ford”);
  37. marcas.addItem(“Opel”);
  38. marcas.addItem(“Peugeot”);
  39. marcas.addItem(“Renault”);
  40. marcas.addItem(“Seat”);
  41. //crear Lista
  42. lista =new JList(complementos);
  43. //añadimos a ventana
  44. contenedor.add(“North”,etiqueta);
  45. contenedor.add(“South”,texto);
  46. contenedor.add(“West”,marcas);
  47. contenedor.add(“East”,lista);
  48. //registramos eventos
  49. lista.addListSelectionListener(new ManejadorListSelectionListener());
  50. marcas.addItemListener(new ManejadorItems());
  51. //Registramos el evento de cerrar la ventana
  52. ventana.addWindowListener(new CerrarVentana());
  53. ventana.setVisible(true);
  54. }
  55. class ManejadorItems implements ItemListener {
  56. public void itemStateChanged(ItemEvent i) {
  57. texto.setText(“”);
  58. lista.clearSelection();
  59. marcaEligida=true;
  60. }
  61. }
  62. class ManejadorListSelectionListener implements ListSelectionListener {
  63. public void valueChanged(ListSelectionEvent l) {
  64. String acum=“Marca:”+marcas.getSelectedItem()+“#”;
  65. if(marcaEligida) {
  66. Object seleccionados[]=lista.getSelectedValues();
  67. for(int index=0;index<seleccionados.length;index++)
  68. acum+=seleccionados[index]+“*”;
  69. texto.setText(acum);
  70. }
  71. else
  72. texto.setText(“Debe seleccionar una marca primero”);
  73. }
  74. }
  75. public static void main(String args[]) {
  76. new MiListasFrames();
  77. }
  78. }
About these ads

~ por inforlandia en noviembre 9, 2008.

3 comentarios to “Interfaces gráficas de usuario: Java Swing”

  1. muy interesante, gracias por tu ayuda. Nos motiva a seguir
    programando en java.

  2. De nada, la verdad es que esto de Java (al igual que cualquier lenguaje de programación) es un inmenso mundo por explorar. Y más si, utilizando Java, nos extendemos a programación web, etc.

  3. para esto yo les recomiendo visual web developer es mucho mas facil y su entrono grafico es mejor ademas de que tambien la progrmacion es orientada a objetos y se pueden crear aplicaciones.net

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: