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

Error al mostrar Tooltip en cada celda de JcomboBox Java

Estas en el tema de Error al mostrar Tooltip en cada celda de JcomboBox Java en el foro de Java en Foros del Web. Hola amigos, bueno pues les tengo un reto.. He estado haciendo una aplicación SWING en Java y me encontré con un problema que me esta ...
  #1 (permalink)  
Antiguo 11/05/2012, 22:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 6 meses
Puntos: 9
Exclamación Error al mostrar Tooltip en cada celda de JcomboBox Java

Hola amigos, bueno pues les tengo un reto..

He estado haciendo una aplicación SWING en Java y me encontré con un problema que me esta dando dolres de cabeza el cual es ingresar un tooltip diferente dependiendo el campo que seleccionen del combobox... (esto debido a que el campo es pequeño y el texto interno es más largo, no puedo ampliar el combobox debido a limitaciones del template que no me permiten mover).

Bien, yo cuento con lo siguiente:

Código PHP:
package com.example
 
import javax.swing.*; 
import java.awt.*; 
import java.util.ArrayList
public class 
ComboboxToolTipRenderer extends DefaultListCellRenderer 
    
ArrayList tooltips
 
    @
Override 
    
public Component getListCellRendererComponent(JList list, Object value
                        
int indexboolean isSelectedboolean cellHasFocus) { 
 
        
JComponent comp = (JComponentsuper.getListCellRendererComponent(list, 
                
valueindexisSelectedcellHasFocus); 
 
        if (-
index && null != value && null != tooltips) { 
                    list.
setToolTipText(tooltips.get(index)); 
                } 
        return 
comp
    } 
 
    public 
void setTooltips(ArrayList tooltips) { 
        
this.tooltips tooltips
    } 

Dicha clase la mando a llamar con este código:

Código PHP:
package comboBox;
import java.awt.FlowLayout;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class 
ComboBoxCreate extends JFrame {
public 
ComboBoxCreate() {
    
initialize();
}

private 
void initialize() {
    
setSize(300300);
    
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
setLayout(new FlowLayout(FlowLayout.LEFT));

    
JLabel label1 = new JLabel("Month  :");

    
String[] months = {"January""February""March""April""Mei""June",
            
"July""August""September""October""November""December"};

    
JComboBox comboBox = new JComboBox();
    
ComboboxToolTipRenderer renderer = new ComboboxToolTipRenderer();
    
comboBox.setRenderer(renderer);
    
//make a loop as needed
    
comboBox.addItem(months);
    
tooltips.add(tooltipString);
    
renderer.setTooltips(tooltips);
    
    
//JComboBox comboBox = new JComboBox(months);

    
getContentPane().add(label1);
    
getContentPane().add(comboBox);

}

public static 
void main(String[] args) {
    
SwingUtilities.invokeLater(new Runnable() {
        public 
void run() {
            new 
ComboBoxCreate().setVisible(true);
        }
    });
}

No entiendo porque no funciona
Les dejo el comboBox, funcionando pero sin el tooltip (aunque el de arriba tampoco lo tiene :S jeje)

Código PHP:
package comboBox;
import java.awt.FlowLayout;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class 
ComboBoxCreate extends JFrame {
public 
ComboBoxCreate() {
    
initialize();
}

private 
void initialize() {
    
setSize(300300);
    
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
setLayout(new FlowLayout(FlowLayout.LEFT));

    
JLabel label1 = new JLabel("Month  :");

    
String[] months = {"January""February""March""April""Mei""June",
            
"July""August""September""October""November""December"};

    
/*JComboBox comboBox = new JComboBox();
    ComboboxToolTipRenderer renderer = new ComboboxToolTipRenderer();
    comboBox.setRenderer(renderer);
    //make a loop as needed
    comboBox.addItem(months);
    tooltips.add(tooltipString);
    renderer.setTooltips(tooltips);*/
    
    
JComboBox comboBox = new JComboBox(months);

    
getContentPane().add(label1);
    
getContentPane().add(comboBox);

}

public static 
void main(String[] args) {
    
SwingUtilities.invokeLater(new Runnable() {
        public 
void run() {
            new 
ComboBoxCreate().setVisible(true);
        }
    });
}

Espero me puedan ayudar con esto.
Muchas gracias!!!
  #2 (permalink)  
Antiguo 12/05/2012, 01:37
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Error al mostrar Tooltip en cada celda de JcomboBox Java

No será que has copiado el código de algún lado y se te ha pasado por alto el punto donde se crea la variable tooltipString?
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Última edición por Fuzzylog; 12/05/2012 a las 01:44
  #3 (permalink)  
Antiguo 12/05/2012, 09:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 6 meses
Puntos: 9
Exclamación Respuesta: Error al mostrar Tooltip en cada celda de JcomboBox Java

Hola gracias por responder, aun ingresandole un valor al tooltip no finciona :s y asi es lo copie de otro lado y lo trate de implementar en el
Comobox que tengo ahi, pero no me funciona :S me podrias apoyar verificando que tngo mal ahi?

Gracias amigo!
  #4 (permalink)  
Antiguo 12/05/2012, 13:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Error al mostrar Tooltip en cada celda de JcomboBox Java

Supongo que lo sacaste de http://stackoverflow.com/questions/4...combobox-items que si te fijas bien está con parte del código cortado y se pierde lo que te falta a ti :

Revisa este link de ejemplo. Ahí se definen los tooltips y se ingresan a los elementos

http://docs.oracle.com/javase/tutori...lTipsDemo.java

Otra solución más fácil se daría si cada uno de los elementos a los que quieres ingresar un texto de tooltip tiene el método setToolTipText.

Así sería elemento.setToolTipText("Lo que quieras poner");
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: jcombobox, swing, tooltip
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 09:34.