Foros del Web » Programación para mayores de 30 ;) » Java »

Interfaz Gráfica en Java

Estas en el tema de Interfaz Gráfica en Java en el foro de Java en Foros del Web. Hola... podrian ayudarme?... hasta ahora estoy empezando a trabajar en Java, ps como perfecto novato tengo demasiadas dudas, sin embargo por ahora, la cosa es ...
  #1 (permalink)  
Antiguo 17/07/2008, 16:25
Avatar de AdanAlsi  
Fecha de Ingreso: julio-2008
Ubicación: Bogotá, Colombia
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Interfaz Gráfica en Java

Hola... podrian ayudarme?... hasta ahora estoy empezando a trabajar en Java, ps como perfecto novato tengo demasiadas dudas, sin embargo por ahora, la cosa es asi: quisiera saber como puedo realizar un formulario en java que me permita ingresar información en una base de datos en SQL Server, lo importante no es tanto como enlazo la base de datos (aunq si tienen información que me sirva para este porfavor envienmela) sino como creo la interfaz gráfica... que le permita a una empleado, por ejemplo, ingresar sus datos personales... es muy importante su colaboración ya q es para un proyecto q debo realizar en q las condiciones son claras en cuanto a las herramientas: "se debe realizar en JAVA y SQL Server"...

Agradezco la colaboración q me puedan prestar y espero recibir pronto una respuesta que me saque del apuro

  #2 (permalink)  
Antiguo 17/07/2008, 18:50
Isdiar
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Interfaz Gráfica en Java

A ver si puedo ayudarte mañana, pero es que son las 2:45 de la mañana aquí en España y tengo sueño... demasiado sueño...

Sin embargo, te dejo un ejemplo que venían en mis apuntes de clase:

Cita:
1er Ejemplo: Crear un programa gráfico en java que muestre una ventana cuyo diseño se muestra. Realizar el programa haciendo uso de herencia con la clase Ventana.

Nombre: ____________________
Apellidos: _________________
Insertar


Ventana {hereda de JFrame}

+ Ventana(titulo:String)
+ crearComponentesVentana():Container {abstracto}

//Ventana.java
import javax.swing.JFrame;
import java.awt.Container;
import javax.swing.JPanel;

public abstract class Ventana extends JFrame {
public Ventana(String titulo){
super(titulo);
setTitle(titulo);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
setContentPane(crearComponentesVentana());
pack() ;
}

public abstract Container crearComponentesVentana();
}//end_class

//MiVentana.java
import java.awt.*;
import javax.swing.*;

public class MiVentana extends Ventana {
public MiVentana(String titulo){
super(titulo);
}

public Container crearComponentesVentana(){
JPanel panel1=new JPanel();
panel1.setLayout(new GridLayout(3,1));
JPanel panel2=new JPanel();
panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
panel2.add(new JLabel("Nombre:"));
panel2.add(new JTextField(30));
JPanel panel3=new JPanel();
panel3.setLayout(new FlowLayout(FlowLayout.LEFT));
panel3.add(new JLabel("Apellidos:"));
panel3.add(new JTextField(50));
JPanel panel4=new JPanel();
panel4.add(new JButton("Insertar"));
panel1.add(panel2);
panel1.add(panel3);
panel1.add(panel4);
return(panel1);
}
}

//EjemploVentana.java
public class EjemploVentana {

public static void main(String[] args) {
MiVentana ventana=new MiVentana("Ejemplo Ventana");
ventana.setVisible(true);
}

}//end_class

Y una pequeña ayuda, también de esos apuntes que te decía:

Cita:
8.- EJEMPLOS DE UTILIZACIÓN DE LA HERENCIA, CLASES ABSTRACTAS Y POLIMORFISMO EN JAVA.

Para hacer los ejemplos utilizaremos las librerías de clases gráficas de Java (awt y swing). A continuación se dan unas nociones básicas de estas librerías.

Existen unas clases llamadas contenedores superiores que implementan ventanas normales, ventanas de diálogo y applets. Estas clases son: Jframe, Jdialog y Japplet.

Las clases que representan contenedores superiores disponen de un panel de contenidos en el que se pueden incluir componentes. Los métodos Container getContenPane() y void setContentPane(Container) permiten acceder y modificar, respectivamente, dicho panel de contenidos.

JFrame

+ setVisible(visible:boolean) //muestra u oculta la ventana

Los contenedores intermedios son los encargados de almacenar los componentes visuales de la aplicación. Ademas, estos pueden incluir otros contenedores, lo que proporciona un modelo muy flexible para realizar aplicaciones con una interfaz compleja. De entre todos los contenedores intermedios, el más utilizado es JPanel, que proporciona una funcionalidad básica para colocar componentes.

Jpanel {descendiente de Container}

+ setLayout(mgr:LayoutManager) //set the layout manager para este contenedor.
+ add(arg0:Component)

Los gestores de esquema (LayoutManager) son los encargados de “colocar” los diversos componentes de un contenedor intermedio en un lugar u otro dentro de su area de visualización. Los gestores de esquemas más habituales son los siguientes:

El gestor de esquemas FlowLayout es el gestor de esquemas más simple. Distribuye los componentes en filas de izquierda a derecha y de arriba a abajo seg ún se van introduciendo en el contenedor.

El gestor de esquemas BorderLayout permite que el contenedor tenga como máximo cinco componentes, que serán colocados al norte, sur, este, oeste y centro del contenedor intermedio. Para introducir estos componentes se usa una versión sobrecargada del método void add(Container, int), donde el entero puede ser una de las constantes NORTH, SOUTH,EAST, WEST y CENTER definidas en la clase BorderLayout.

Por último, el gestor de esquemas GridLayout dispone de un constructor en el que se indica el número de filas y columnas en las que va a quedar dividido el contenedor intermedio. Cuando se utiliza este gestor, los componentes se van incluyendo ocupando filas de arriba a abajo, y cada fila de izquierda a derecha; además, todas las componentes introducidas ocuparán el mismo espacio dentro del contenedor intermedio.



FlowLayout //implementa interface LayoutManager
- CENTER: int {estatico} //alineacion centrada
- LEFT: int {estatico} //alineacion izquierda
- RIGHT: int {estatico} //alineacion derecha
+ FlowLayout() //construye un FlowLayout con alineación centrada y 5 unidades verticales y horizontales de //separación con los bordes
+ FlowLayout(int alineacion) //construye un FlowLayout con la alineación indicada y 5 unidades verticales y horizontales de

Un componente es un objeto gráfico que puede ser mostrado en la pantalla y con el que el usuario puede interactuar. Examplos de componentes son: botones, cajas de chequeo, barras de desplazamiento, cajas de texto, etc.

JButton {descendiente de Component}

+ JButton(arg0:String) //se le pasa el texto del botón

JLabel {descendiente de Component}

+ JLabel(arg0:String) //se le pasa el texto a mostrar

JTextField {descendiente de Component}

+ JTextField(arg0: int) //se le pasa el tamaño de la caja de texto


Si tienes dudas, o quieres que te lo explique personalmente, dímelo y mañana te escribo aquí El Mini Quijote... xD (tampoco sé mucho de Java, pero lo poquito que sé creo que te puede valer...)

También tienes un manual aquí: http://www.cica.es/formacion/JavaTut/Cap4/awt.html

Un saludo! ;)
  #3 (permalink)  
Antiguo 17/07/2008, 20:20
Avatar de AdanAlsi  
Fecha de Ingreso: julio-2008
Ubicación: Bogotá, Colombia
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

muchas gracias por atender mi llamado... aqui en Colombia son las 9:15 pm... voy a aplicar de acuerdo a lo q me escribio... mañana vuelvo a postear por si tengo alga duda...

Antes de irme... una pregunta mas ¿ en mi pc tengo netbeans, eclipse y JCreator pero ps no se debo trabajarlos desde ahi como proyectos o solo lo trabajo en un block de notas como se q se puede hacer?

gracias de nuevo y espero comnicarnos pronto...
  #4 (permalink)  
Antiguo 17/07/2008, 20:59
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Hola Adan podes hacerlo desde un block de notas supongo. Pero NetBeans tiene una interfaz para hacer los formularios de los gráficos bastante simple.

Se trata solo de arrastrar las cosas a tu programa.
  #5 (permalink)  
Antiguo 17/07/2008, 23:03
Avatar de jotaaigriegao  
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Te recomiendo NetBeans x la facilidad al crear la interfaz, tal como dijo Diegongui. Aca te dejo un link de una pagina bastante buena para entender a grandes rasgos y de manera clara la forma de interactuar con una base de datos, usando la API JDBC.

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21-4.html

Saludos
  #6 (permalink)  
Antiguo 18/07/2008, 05:01
Isdiar
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Interfaz Gráfica en Java

Cita:
Iniciado por AdanAlsi Ver Mensaje
muchas gracias por atender mi llamado... aqui en Colombia son las 9:15 pm... voy a aplicar de acuerdo a lo q me escribio... mañana vuelvo a postear por si tengo alga duda...

Antes de irme... una pregunta mas ¿ en mi pc tengo netbeans, eclipse y JCreator pero ps no se debo trabajarlos desde ahi como proyectos o solo lo trabajo en un block de notas como se q se puede hacer?

gracias de nuevo y espero comnicarnos pronto...

Yo, la documentación y los ejemplos que te he dado es para crearlos mediante la escritura de código. O sea, usando Eclipse (o un bloc de notas). Te aconsejo que uses Eclipse antes que un bloc de notas, pues te irá diciendo todos los métodos que tiene cada objeto, y te mostrará los errores.

Un saludo. Chao!
  #7 (permalink)  
Antiguo 18/07/2008, 07:28
Avatar de AdanAlsi  
Fecha de Ingreso: julio-2008
Ubicación: Bogotá, Colombia
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Isdiar... ya aplique el codigo q me has dado... pero se me presentaron varios problemas...
1. en Ventana.java tengo el siguiente error: en lo q mas abajo señale con rojo me aparece el siguiente mensaje:

"The serilizable class Ventana does not declare a stitc final serialVersionUID field of type long"
import java.awt.Container;
import javax.swing.JFrame;

/**
*
*/

/**
* @author daniel.rodriguez
*
*/
public abstract class Ventana extends JFrame{
public Ventana(String titulo){
super(titulo);
setTitle(titulo);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
setContentPane(crearComponentesVentana());
pack() ;
}
public abstract Container crearComponentesVentana();
//end_class

2. Ese mismo error me aparace en la MiVentana.java pero con

<B>
public</B>
abstractclass MiVentana extends Ventana{

3. En EjemploVentana el error q me muestra es el siguiente:
"Cannot instantiate the type MiVentana"
<B>
public</B>
class EjemploVentana {

public
staticvoid main(String[] args){
MiVentana ventana=
new MiVentana("Ejemplo Ventana");
ventana.setVisible(
true);
}

}

Agradecería muchisimo que me colaborara con esto (quizas sea una bobada pero para el q no sabe seria una gran ilustración)

Gracias
  #8 (permalink)  
Antiguo 18/07/2008, 07:33
Avatar de AdanAlsi  
Fecha de Ingreso: julio-2008
Ubicación: Bogotá, Colombia
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Diegongui... quisiera saber desde donde puedo acceder a esta interfaz de la q hablas... y en q consiste lo del "arrastrar cosas" al programa... gracias por la colaboración...
  #9 (permalink)  
Antiguo 18/07/2008, 08:16
Avatar de AdanAlsi  
Fecha de Ingreso: julio-2008
Ubicación: Bogotá, Colombia
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Isdiar... logre q la interfaz q me diste corriera correctamente, sin embargo sigo preocupado, ya que persisten 2 de los errores de los q habia mencionado antes

1.The serializable class MiVentana does not declare a static final serialVersionUID field of type long presente en MiVentana.java

2. The serializable class Ventana does not declare a static final serialVersionUID field of type long presente en Ventana.java

Aunq el programa corre bien, me preocupa q pueda interferir en algun momento con el aplicativo... te agradecería tu colaboración
  #10 (permalink)  
Antiguo 18/07/2008, 08:36
Isdiar
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Interfaz Gráfica en Java

Hola AdanAlsi,

es que MiVentana.java y Ventana.java son dos métodos que tengo creados:

MiVentana.java
Cita:
package utilidades;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;

import javax.swing.*;

class MiVentana extends Ventana{
private Boton btnAceptar;
public MiVentana(){
super();
}

public MiVentana(String titulo){
super(titulo);
}

public MiVentana(String titulo, Controlador controlador){
super(titulo,controlador);
}

public void crearComponentesVentana(){

JPanel panel=new JPanel(new GridLayout(2,1));
JPanel fila1=new JPanel(new FlowLayout(FlowLayout.LEFT));
fila1.add(new JLabel("Dni:"));
fila1.add(new JTextField(10));
fila1.add(new JLabel("Nombre:"));
fila1.add(new JTextField(10));
fila1.add(new JLabel("Apellidos:"));
fila1.add(new JTextField(20));
fila1.add(new JComboBox());
panel.add(fila1);
JPanel fila2=new JPanel(new FlowLayout(FlowLayout.LEFT));
btnAceptar=new Boton("btnAceptar","Aceptar",controlador);
fila2.add(btnAceptar);
fila2.add(new JLabel(new ImageIcon("utilidades/colon1Kg.jpg")));
panel.add(fila2);
this.setContentPane(panel);
this.pack();
}

}//end_class

class MiControlador extends Controlador{
private MiVentana ventana;

public MiControlador(){
super();
}

public void setVentana(Ventana ventana){
this.ventana=(MiVentana)ventana;
}

public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("btnAceptarClick")) {
ventana.mostrarMensaje("Click en Boton Aceptar");
return;
}
}

public void windowOpened( WindowEvent evt ) {

}
}

public class PruebaVentana {

public static void main(String[] args) {
MiControlador controlador=new MiControlador();
MiVentana ventana=new MiVentana("hola",controlador);
ventana.abrir();
}

}
Ventana.java
Cita:
//Ventana.java
package utilidades;
import java.awt.Container;
import javax.swing.*;

public abstract class Ventana extends JFrame {

private boolean creadosComponentes=false;
protected Controlador controlador=null;

public Ventana( String titulo, Controlador controlador) {
this.controlador=controlador;
controlador.setVentana(this);
this.addWindowListener(controlador);
setTitle(titulo);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}

public Ventana(String titulo) {
setTitle(titulo);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}

public Ventana(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}

public void setControlador(Controlador controlador){
this.controlador=controlador;
}

public abstract void crearComponentesVentana();

public void abrir(){
if(!creadosComponentes){
this.crearComponentesVentana();
creadosComponentes=true;
}
setVisible(true);
}

public void mostrarMensaje(String texto){
JOptionPane.showMessageDialog(this,texto,"Mensaje" ,JOptionPane.INFORMATION_MESSAGE);
}

public String leerCadena(String mensaje){
String cadena;
cadena=JOptionPane.showInputDialog(this,mensaje,"I ntroduzca Dato",JOptionPane.INFORMATION_MESSAGE);
if(cadena==null)
return("");
else
return(cadena);
}

public Integer leerEntero(String mensaje){
String cadena;
int numero;
cadena=JOptionPane.showInputDialog(this,mensaje,"I ntroduzca Dato",JOptionPane.INFORMATION_MESSAGE);
try{
numero=Integer.parseInt(cadena);
return(new Integer(numero));
}catch(Exception e){
return(null);
}
}


public boolean confirmar(String mensaje){
if(JOptionPane.showConfirmDialog(this,mensaje,"Int roduzca Dato",JOptionPane.YES_NO_OPTION)==0)
return(true);
else
return(false);
}

}//end_class

Un saludo.
  #11 (permalink)  
Antiguo 18/07/2008, 10:35
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

A la derecha en netbeans debería aparecer una paleta a lo largo que dice "swing containers" y mas abajo otra que dice "swing controls". De ambas arrastras el ícono que queres a tu código y automaticamente genera el código de lo que arrastraste.

Última edición por Diegongui; 18/07/2008 a las 16:15 Razón: Era a la derecha, no a la izquierda.
  #12 (permalink)  
Antiguo 18/07/2008, 15:29
Avatar de AdanAlsi  
Fecha de Ingreso: julio-2008
Ubicación: Bogotá, Colombia
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Muchas Gracias a todos por su colaboración... me permitieron resolver esa duda... sus respuestas fueron muy buenas... de nuevo muchas gracias... quisiera saber si los puedo agregar como contactos o amigos... como prefieran... para estar en contacto con ustedes y quizas molestarlos con preguntas mas adelante... jajaja... espero q acepten...

y de nuevo... GRACIAS
  #13 (permalink)  
Antiguo 18/07/2008, 16:14
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Interfaz Gráfica en Java

Cometi un error, pero supongo que te diste cuenta igual.

La plantilla esta a la dereche, no a la izquierda. Cuando escribi la respuesta anterior estaba apurado y me equivoque.

No creo que te pueda ser de mucha ayuda mas adam ya que si bien tengo conocimientos tambien principiante .

Cualquier cosa crea otro hilo con otras dudas y si conozco la respuesta la respondere con gusto.
  #14 (permalink)  
Antiguo 18/07/2008, 17:26
Isdiar
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Interfaz Gráfica en Java

Hola AdanAlsi,

me alegro de habérte sido de ayuda. Puedes agregarme como amigo en el Foro, aceptaré gustosamente. Si necesitas algo y puedo ayudarte... encantado, aunque también soy principiante en esto.

Un saludo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.