packageguj;importjava.awt.event.MouseEvent;importjavax.swing.JList;importjavax.swing.ListModel;publicclassJListComTooltipextendsJList{publicJListComTooltip(){// TODO Auto-generated constructor stub}publicJListComTooltip(ListModeldataModel){super(dataModel);}@OverridepublicStringgetToolTipText(MouseEventevent){intindex=this.locationToIndex(event.getPoint());if(index!=-1){Objectobj=getModel().getElementAt(index);if(objinstanceofWithTooltip){return((WithTooltip)obj).getTooltipText();}else{returnsuper.getToolTipText(event);}}else{returnsuper.getToolTipText(event);}}}
packageguj;importjava.awt.BorderLayout;importjava.util.ArrayList;importjava.util.List;importjavax.swing.DefaultListModel;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.SwingUtilities;interfaceWithTooltip{StringgetTooltipText();}classProdutoimplementsWithTooltip{publicProduto(finalStringnome,finalintid,finalStringdescricao){this.nome=nome;this.id=id;this.descricao=descricao;}privateStringnome;privateintid;privateStringdescricao;publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetDescricao(){returndescricao;}publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}@OverridepublicStringtoString(){returnnome;}@OverridepublicStringgetTooltipText(){returndescricao;}}publicclassExemploJListComTooltipextendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJScrollPanescpList=null;privateJListComTooltiplstExemplo=null;/** * This method initializes scpList * * @return javax.swing.JScrollPane */privateJScrollPanegetScpList(){if(scpList==null){scpList=newJScrollPane();scpList.setViewportView(getLstExemplo());}returnscpList;}privateJListComTooltipgetLstExemplo(){if(lstExemplo==null){lstExemplo=newJListComTooltip();lstExemplo.setModel(listModel);for(Produtoproduto:produtos)listModel.addElement(produto);}returnlstExemplo;}publicstaticvoidmain(String[]args){// TODO Auto-generated method stubSwingUtilities.invokeLater(newRunnable(){publicvoidrun(){ExemploJListComTooltipthisClass=newExemploJListComTooltip();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}publicExemploJListComTooltip(){super();initialize();}privatevoidinitialize(){produtos.add(newProduto("MacBook",100,"MacBook Pro 13\" Early 2011"));produtos.add(newProduto("PlayStation",200,"Sony PlayStation Vita"));produtos.add(newProduto("Wii U",300,"Nintendo Wii U"));this.setSize(300,200);this.setContentPane(getJContentPane());this.setTitle("JFrame");}privateJPanelgetJContentPane(){if(jContentPane==null){jContentPane=newJPanel();jContentPane.setLayout(newBorderLayout());jContentPane.add(getScpList(),BorderLayout.CENTER);}returnjContentPane;}privateList<Produto>produtos=newArrayList<Produto>();privateDefaultListModellistModel=newDefaultListModel();}
F
fdavoli
Vlw cara!!!
no final das contas consegui achar em um site gringo!!! porem a solução é semelhante a sua…
public void mouseMoved(MouseEvent e) {
java.awt.Point p = e.getPoint();
int index = lstDireita.locationToIndex(p);
lstDireita.setToolTipText(lstDireita.getModel().getElementAt(index).toString());
}