Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: monsefoster en 21 Febrero 2010, 05:40 AM

Título: [SOLUCIONADO]Ayuda Con Interfaces Graficas?
Publicado por: monsefoster en 21 Febrero 2010, 05:40 AM
Chicos, he estado tratando de hacer algo...
Me da error por motivo desconocido? Que esto haciendo mal? Les pongo el codigo...La linea que esta "mal" es la de  C.add (new ventana ());

Código (java) [Seleccionar]
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
import conv.*;

public class Convertidor extends JApplet {

public void init() {
Container C = getContentPane();
C.setLayout(new FlowLayout());
C.add (new ventana ());
}

}
}


Código (java) [Seleccionar]
package conv;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Color.*;

public class ventana extends JPanel implements KeyListener, ActionListener{

private JLabel title,c,f,b;
private JTextField c1,r;
private JButton borrar,cerrar;
private JPanel pc,ps;
private Font F = new Font ("Verdana", Font.BOLD,12);

public ventana() {
title = new JLabel ("Convertidor de Grados Celcios a Fahrenheit");
c = new JLabel ("Inserte Grados Celcios: ");
f = new JLabel ("Grados Fahrenheit: ");
title.setForeground (Color.blue);
c.setForeground (Color.blue);
f.setForeground (Color.blue);
b.setForeground (Color.blue);
c1 = new JTextField ("0",5);
r = new JTextField ("0",5);
c1.setForeground (Color.blue);
r.setForeground (Color.blue);
c1.setFont (F);
r.setFont (F);
borrar = new JButton ("Borrar");
cerrar = new JButton ("Cerrar");
pc = new JPanel ();
ps = new JPanel ();
pc.setLayout (new GridLayout (2,2));
ps.setLayout (new GridLayout (1,2));
pc.add(c);
pc.add(c1);
pc.add(f);
pc.add(r);
ps.add(borrar);
ps.add(cerrar);
setLayout (new BorderLayout ());
add(title,BorderLayout.NORTH);
add(pc,BorderLayout.CENTER);
add(ps,BorderLayout.SOUTH);
c1.addKeyListener (this);
borrar.addActionListener (this);

}
public void actionPerformed (ActionEvent e){
c1.setText("0");
r.setText ("0");
}

public void keyPressed (KeyEvent x){

}
public void keyReleased (KeyEvent x){
double aux,f;
if (x.getSource ()==c){
aux = Double.parseDouble (c1.getText());
f=(aux*(9/5)+32);
r.setText (""+f);
}
}
public void keyTyped (KeyEvent x){

}
}


Tambien necesito un poquito de ayuda con lo del boton cerrar, es para que termine el proceso, y regrese a la pantalla del codigo... lo se en c pero en java ni idea...
:huh:

Ademas, otra pregunta...  :-[, que pasa si no necesito el keyTyped o el keyPressed? tengo que definirlos igual? o solo el cuerpo en blanco?

Disculpen la molestia, trato de aprender... :rolleyes:
Título: Re: Ayuda Con Interfaces Graficas?
Publicado por: Leyer en 21 Febrero 2010, 06:05 AM
tu error es que se te paso iniciar el label b antes de cambiarle el color y lo de keyTyped o el keyPressed tienes que denifirlos obligatoriamente y si no los necesites simplemente dejalos en blanco y sobre la pantalla de code no te entendi pero nada :xD

Un saludo,
Título: Re: Ayuda Con Interfaces Graficas?
Publicado por: Casidiablo en 21 Febrero 2010, 06:10 AM
Citar Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.



Te respondo dos de las preguntas porque tengo mucho sueño:

1. El error es por que estás ubicando mal los paquetes (cuando usas package). Has lo siguiente: borra la linea que dice: import conv.*; de Convertidor.java, y borra la que dice package conv; de ventana.java.
Ahora, que si lo que quieres es usar paquetes... primero: si dices que un paquete va hacer "paquetico" y usas package paquetico; entonces debes poner esa clase dentro de una carpeta llamada "paquetico". Luego deberías usar el classpath si vas a acceder a clases de otro paquete.

Lo mejor en este caso es que AMBAS clases estuvieran en el mismo paquete.

2. Por convención deberías llamar a tus clases con la primera en mayúscula. O sea, en vez de ventana, porner Ventana.

3. Sí, debes definir Keytyped y Keypressed así no las uses. Esos son métodos de una interfaz. Cuando implementas una interfaz DEBES implementar TODOS los métodos de de dicha interfaz... si no los vas a usar, los dejas en blanco.

Lo del botón crear, me da flojera mirarlo.

Un saludo!
Título: Re: Ayuda Con Interfaces Graficas?
Publicado por: monsefoster en 21 Febrero 2010, 07:06 AM
Hola! Gracias por las respuestas!
Tenian razon con lo del b... creo que lo coloque de mas...

a lo que me referia de la pantalla es el equivalente al "exit (0)" en C.
Ahora otra pregunta... creo que estoy haciendo algo mal, ya que cuando inserto los numeros y presiono "enter" no sucede nada, no me hace la conversion.  :huh:

Disculpen la molestia, y no se anden trasnochando  ;)
Título: Re: Ayuda Con Interfaces Graficas?
Publicado por: Leyer en 21 Febrero 2010, 07:18 AM
Cita de: monsefoster en 21 Febrero 2010, 07:06 AM
Disculpen la molestia, y no se anden trasnochando  ;)
casidiablo :xD

Es System.exit(0);  y bueno para solucionar lo del enter tienes que especificar en el keyPressed que el evento es c1 y no c y especificar que tecla se esperara para la accion en tu caso "Enter" te tiene que quedar asi

Código (java) [Seleccionar]
public void keyReleased (KeyEvent x){
double aux,f;
if (x.getSource ()==c1){
if(x.getKeyCode()==KeyEvent.VK_ENTER){
aux = Double.parseDouble (c1.getText());
f=(aux*(9/5)+32);
r.setText (""+f);
}
}
}


Saludos.

Título: Re: Ayuda Con Interfaces Graficas?
Publicado por: monsefoster en 21 Febrero 2010, 07:41 AM
LEYER! Eres lo maximo!  ;D
Casate conmigo! Necesito un novio genio!  :P

Creo que le quitare el "Cerrar" pq me da cantidad de errores cuando coloco el
Código (java) [Seleccionar]
System.exit(0);
Título: Re: Ayuda Con Interfaces Graficas?
Publicado por: Leyer en 21 Febrero 2010, 08:51 AM

Cita de: monsefoster en 21 Febrero 2010, 07:41 AM
LEYER! Eres lo maximo!  ;D
Casate conmigo! Necesito un novio genio!  :P

Creo que le quitare el "Cerrar" pq me da cantidad de errores cuando coloco el
Código (java) [Seleccionar]
System.exit(0);

jajajaja, bueno siempre es un placer ayudar :)

Un Saludo.