Recuperar la palabra seleccionada -Java-
sarounette
-
sarounette -
sarounette -
Hola a todos,
Mi aplicación es la siguiente:
Dispongo de un JTextArea en el que voy a mostrar frases. Si el usuario selecciona una palabra en ese JTextArea, debo recuperar esa "palabra seleccionada" para someterla a un determinado procesamiento. Sé que debo usar un listener, pero ¿cuál exactamente? y ¿cómo hacerlo? he encontrado muchos tutoriales, pero no veo exactamente cómo implementarlo... ¿alguien podría ayudarme, por favor?
Mi aplicación es la siguiente:
Dispongo de un JTextArea en el que voy a mostrar frases. Si el usuario selecciona una palabra en ese JTextArea, debo recuperar esa "palabra seleccionada" para someterla a un determinado procesamiento. Sé que debo usar un listener, pero ¿cuál exactamente? y ¿cómo hacerlo? he encontrado muchos tutoriales, pero no veo exactamente cómo implementarlo... ¿alguien podría ayudarme, por favor?
3 respuestas
-
¡Hola!
Aquí tienes un ejemplo de implementación. Haz doble clic en una palabra o selecciona una parte del texto con el ratón y el texto seleccionado aparecerá en la parte inferior de la ventana.
En cuanto a ti, debes agregar un MouseListener a tu JTextArea. Obtén el texto seleccionado en el método "mouseReleased(MouseEvent e)" del MouseListener (ver código a continuación).
Una vez que hayas obtenido el texto, haz lo que quieras con él.
package hacktrack; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; public class TextSelectDemo extends JFrame implements MouseListener { private JTextArea textarea; private JTextField textfield; public TextSelectDemo() { super("HackTrack - Text selection demo - 17/05/2012"); initialize(); } private void initialize() { setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new BorderLayout()); textarea = new JTextArea(10, 8); textarea.setLineWrap(true); textarea.addMouseListener(this); textarea.setText("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"); c.add(textarea, BorderLayout.CENTER); textfield = new JTextField(); c.add(textfield, BorderLayout.SOUTH); setPreferredSize(new Dimension(640,480)); } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { JTextArea jta = (JTextArea) e.getSource(); String selectedTxt = jta.getSelectedText(); textfield.setText(selectedTxt); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } public static void main(String[] args) { TextSelectDemo demo = new TextSelectDemo(); demo.pack(); demo.setVisible(true); } } -
-