Witam,
mam problem z czytelną reprezentacją dość długich Stringów przechowywanych w JComboBoxie.
Pomyślałem więc, że zamiast Stringów wrzucę obiekt MyComponent(extends JComponent), który w JComboBoxie wyświetli fragment tekstu a za pomocą setToolTipText umożliwi użytkownikowi przeczytanie wszystkiego
Problem w tym, że nie mogę wyświetlić ToolTipText w momencie kiedy najeżdżam myszką na jeden z MyComponentów.
MyComponent
package zabawazjcomboboxem;
import javax.swing.JComponent;
public class MyComponent extends JComponent{
private String txt;
private String name;
public MyComponent(String s) {
super();
this.txt=s;
this.name=s.substring(0, 15) +"...";
super.setToolTipText(txt);
this.setToolTipText(txt);
}
@Override
public String toString(){
return name;
}
@Override
public String getToolTipText() {
return txt;
}
}
package zabawazjcomboboxem;
import java.awt.Toolkit;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ZabawaZJComboBoxem {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JPanel panel = new JPanel();
Toolkit tool = Toolkit.getDefaultToolkit();
panel.setSize(tool.getScreenSize());
panel.setVisible(true);
JComboBox combo = new JComboBox();
combo.addItem(new MyComponent("qwertyuiopqwertyuiopqwertyuiop"));
combo.addItem(new MyComponent("asdfghjklasdfghjklasdfghjklasdfghjkl"));
combo.addItem(new MyComponent("zxcvbnm,zxcvbnm,zxcvbnm,zxcvbnm,zxcvbnm,"));
combo.setToolTipText("ToolTipTxt combo");
panel.add(combo);
JFrame frame = new JFrame();
frame.setSize(tool.getScreenSize());
frame.add(panel);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}