[SOLUCIONADO]Ayuda Con Interfaces Graficas?

Iniciado por monsefoster, 21 Febrero 2010, 05:40 AM

0 Miembros y 2 Visitantes están viendo este tema.

monsefoster

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:

Leyer

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,

Casidiablo

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!

monsefoster

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  ;)

Leyer

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.


monsefoster

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);

Leyer


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.