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

Problema con ejercicios de interface grafica

Estas en el tema de Problema con ejercicios de interface grafica en el foro de Java en Foros del Web. hola a todos.. he estado leyendo el libro de como programar en java 5 edicion de deitel y deitel.. estoy en el capitulo 14... interfaces ...
  #1 (permalink)  
Antiguo 30/11/2008, 17:09
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Problema con ejercicios de interface grafica

hola a todos.. he estado leyendo el libro de como programar en java 5 edicion de deitel y deitel.. estoy en el capitulo 14... interfaces graficas de usuarios 2.. en el cual me plantean el siguiente problema:

14.12. Declare a una subclase de JPanel llamada MiSelectorDeColores que proporcione 3 objetos JSlider y 3 objetos JTextField cada objeto JSlider representa los valores de 0 a 255 para las partes rojo, azul , verde de un color. use los valores de rojo, verde y azul como argumentos para el contructor de Color, para crear un nuevo objeto Color. Muestre el valor actual de cada objeto JSlider en el objeto JTextField correspondiente. cuando el usuario cambie el valor del objeto JSlider, el objeto JTextField debera cambiar de manera acorde. Declare la clase de manera que pueda utilzarse en otras aplicaciones o subprogramas. use su nuevo componente de la GUI como parte de un subprograma que muestre el valor del actual de Color. Dibujando un rectangulo relleno.

bueno el ejercicio lo he desarrollado pero a la hora de implementar la clase.. en otra clase.. creado un objeto de esta. no me funciona, es decir. al crear la clase MiSelectorDeColores que herede de JPanel.. esta clase ahora es un JPanel (corrijanme si estoy mal) despues de esto implemento la clase.. y agrago la clase creada a un contedor que se va a mostrar en una posicion especificada.

Codigo de la clase MiSelectorDeColores

Código:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class MiSelectorDeColores extends JPanel
{
	private JSlider sliderrojo ,sliderverde , sliderazul;
	private JTextField camporojo ,campoverde , campoazul , camposalida;
	private JPanel panelrojo ,panelverde , panelazul , panelcontroles , panelresultados, paneldescripcion , panelfinal;
	private JLabel salidaetiqueta , etiquetac1 , etiquetac2 , etiquetac3;	
	private int rojo ,verde , azul;
	private Color CRojo ,CVerde , CAzul, CFinal;
	
	public MiSelectorDeColores()
	{
		panelrojo = new JPanel();
		panelrojo.setLayout(new FlowLayout());
		
		panelverde = new JPanel();
		panelverde.setLayout(new FlowLayout());
			
		panelazul = new JPanel();
		panelazul.setLayout(new FlowLayout());
		
		panelcontroles = new JPanel();
		panelcontroles.setLayout(new GridLayout(3,1));
		
		panelresultados = new JPanel();
		panelresultados.setLayout(new FlowLayout());
		
		paneldescripcion = new JPanel();
		paneldescripcion.setLayout(new GridLayout(1,3));
		
		panelfinal = new JPanel();
		panelfinal.setLayout(new BorderLayout());		
				
	    sliderrojo = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 );
		sliderrojo.setMajorTickSpacing( 10 );
		sliderrojo.setPaintTicks( true );
		
		sliderrojo.addChangeListener(

		         new ChangeListener() { 

		            public void stateChanged( ChangeEvent e )
		            {
		            	rojo = sliderrojo.getValue();
		            	CRojo = new Color(rojo, 0, 0);	            	
		            	camporojo.setBackground(CRojo);
		            	repaint();

		            }
		         }
		      );
		
		camporojo = new JTextField(1);
		camporojo.setEditable(false);
		
		panelrojo.add(sliderrojo);
		panelrojo.add(camporojo);
		
		sliderverde = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 );
		sliderverde.setMajorTickSpacing( 10 );
		sliderverde.setPaintTicks( true );
		
		sliderverde.addChangeListener(

		         new ChangeListener() { 

		            public void stateChanged( ChangeEvent e )
		            {
		            	verde = sliderverde.getValue();
		            	CVerde = new Color(0, verde, 0);	            	
		            	campoverde.setBackground(CVerde);
		            	repaint();

		            }
		         }
		      );
		
		campoverde = new JTextField(1);
		campoverde.setEditable(false);
		
		panelverde.add(sliderverde);
		panelverde.add(campoverde);
		
		
		sliderazul = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 );
		sliderazul.setMajorTickSpacing( 10 );
		sliderazul.setPaintTicks( true );
		
		sliderazul.addChangeListener(

		         new ChangeListener() { 

		            public void stateChanged( ChangeEvent e )
		            {
		            	azul = sliderazul.getValue();
		            	CAzul = new Color(0, 0, azul);	            	
		            	campoazul.setBackground(CAzul);
		            	repaint();
		            }
		         }
		      );
		
		campoazul = new JTextField(1);
		campoazul.setEditable(false);
				
		panelazul.add(sliderazul);
		panelazul.add(campoazul);
		
		camposalida = new JTextField(5);
		camposalida.setEditable(false);
		
		salidaetiqueta = new JLabel ("Resultado");
		
		etiquetac1 = new JLabel("Slider1"); 
		etiquetac1.setFont(new Font("Tahoma", Font.BOLD, 12));
		etiquetac1.setForeground(Color.RED);

		etiquetac2 = new JLabel("Slider2"); 
		etiquetac2.setFont(new Font("Tahoma", Font.BOLD, 12));	
		etiquetac2.setForeground(Color.GREEN);
		
		etiquetac3 = new JLabel("Slider3"); 
		etiquetac3.setFont(new Font("Tahoma", Font.BOLD, 12));
		etiquetac3.setForeground(Color.BLUE);
		
		
		panelresultados.add(salidaetiqueta);
		panelresultados.add(camposalida);		
		
		panelcontroles.add(panelrojo);
		panelcontroles.add(panelverde);
		panelcontroles.add(panelazul);
		
		paneldescripcion.add(etiquetac1);
		paneldescripcion.add(etiquetac2);
		paneldescripcion.add(etiquetac3);
		
		panelfinal.add(panelcontroles, BorderLayout.NORTH);
		panelfinal.add(panelresultados, BorderLayout.CENTER);
		panelfinal.add(paneldescripcion, BorderLayout.SOUTH);
		
	}
	
	public void paintComponent(Graphics g)
	{
	super.paintComponent(g);
	CFinal = new Color(rojo, verde, azul);
	camposalida.setBackground(CFinal);
	etiquetac1.setText("Valor Slider1: "+sliderrojo.getValue());
	etiquetac2.setText("Valor Slider2: "+sliderverde.getValue());
	etiquetac3.setText("Valor Slider3: "+sliderazul.getValue());	
	}
}
codigo de la implementacion de MiSelectorDeColores

Código:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.*;

public class ImplementacionPaleta extends JFrame
{
	private MiSelectorDeColores paleta ;


	public ImplementacionPaleta()
	{
	super ("Prueba paleta");
	
	Container Contenedor = getContentPane();
	Contenedor.setLayout( new BorderLayout() );	
	
	paleta = new MiSelectorDeColores();

	this.add(paleta,BorderLayout.NORTH);
	
	setSize( 500, 500 );
    setVisible( true );
	}

	public static void main (String args[])
	{
	ImplementacionPaleta test = new ImplementacionPaleta();
	test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}	
}
Gracias por su colaboracion
  #2 (permalink)  
Antiguo 03/12/2008, 23:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 71
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problema con ejercicios de interface grafica

Hola kaleltas.

Todo el codigo de la implementacion esta bien, el error lo tienes en la clase MiSelectorDeColores donde:

aqui agregas todos los componentes a tu panel final pero el panel final no lo agregar al panel de que extiendes.

panelfinal.add(panelcontroles, BorderLayout.NORTH);
panelfinal.add(panelresultados, BorderLayout.CENTER);
panelfinal.add(paneldescripcion, BorderLayout.SOUTH);

solo te falto esta linea de codigo para que funcione.

add(panelfinal);
  #3 (permalink)  
Antiguo 06/12/2008, 09:16
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con ejercicios de interface grafica

hola, muchas gracias.. me ha servido perfetamente... lo que se hace add(panelfinal) es agregar el panelfinala el JPanel.. osea algo como this.add(panelfinal) ?
  #4 (permalink)  
Antiguo 06/12/2008, 09:40
Avatar de Payin  
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema con ejercicios de interface grafica

exacto. Necesitas agregarlo al panel, sino no se van a mostrar

es decir, tienes que agregar los elementos al panelfinal
  #5 (permalink)  
Antiguo 08/12/2008, 19:04
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con ejercicios de interface grafica

muchas gracias por su ayuda me ha servido de mucho
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 11:26.