Eu estou fazendo um dicionário em Java. Quando o usuário der um único clique com o mouse sobre uma palavra presente num texto, na GUI, o dicionário abriará uma nova janela GUI com o significado da palavra. O significado da palavrar virá de um banco de dados. A minha dúvida é como implementar este evento da melhor forma. Ou seja, como o java identificará qual palavra sofreu o clique do mouse. Eu já tenho algumas idéias:
usar um JTextPanel e implementar um listener para ele. Mas, como seria o código no listener capaz de identificar qual palavra foi clicada? ou
Implementar um listener para o texto que me dÊ as coordenadas (x,y) da palavra, para que eu consiga indetificá-la com coordenadas X,Y gravadas no banco.
Qual destas idéias seria a mais apropriada? E como seria um exemplo de código em java para a identificação da palavra clicada?
Qualquer dica será de grande ajuda.
Muito obrigado.
Estes dias precisei de algo parecido. Adicionei um MouseListener à jList, que com um duplo clique, ele abriria uma nova janela de acordo com o valor selecionado. Neste caso precisei saber o índice no JList.
A partir disto você poderia usar algo como getSelectedText() em um campo com String ao invés do getSelectedIndex().
jlistaContatosAtivos.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (jlistaContatosAtivos.isEnabled()) {
if (e.getClickCount() == 2) {
indice = jlistaContatosAtivos.getSelectedIndex();
msgr.iniciarNovoChat();
}
}
}
});
Eu entendi perfeitamente a sua idéia. Neste caso, a palavra deverá estar selecionada no texto, para a sua idéia dar certo?
Eu não quero que a palavra seja selecionada obrigatoriamente, porque quero que tudo aconteça com um único clique do mouse.
Será que dá para fazer?