elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Capturar texto seleccionado y copiado, con un evento
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar texto seleccionado y copiado, con un evento  (Leído 6,031 veces)
noobdai

Desconectado Desconectado

Mensajes: 27



Ver Perfil
Capturar texto seleccionado y copiado, con un evento
« en: 15 Marzo 2010, 18:01 pm »

Saludos.

Necesito saber que evento puedo utilizar para poder capturar desde otra parte que no sea la misma interfaz del programa,el texto que selecciono y copio.

Por ejemplo: cuando selecciono una parte del texto de una pagina web y lo copio.

Saludos


En línea

danielo-

Desconectado Desconectado

Mensajes: 218


:)


Ver Perfil
Re: Capturar texto seleccionado y copiado, con un evento
« Respuesta #1 en: 15 Marzo 2010, 18:37 pm »

ammm... no se como hacer eso que pides, pero una vez que tuve q hacer algo parecido lo soluciones podiendo un JDialog en una esquina de la pantalla la cual se mantenia todo el tiempo visible y sobre cualkier cosa (setAlwaysOnTop(true)), la cual cada vez  que necesitaba mandar algo al portapales, seleccionaba lo que necesitaba, y lo arrastraba hasta donde se encontraba el JDialog... y..... pues no es lo que necesitas, pero funciona.
 Otra opción que me dio mi maestro es hacer un "enganche" o "hook" al mouse, para lo cual necesitas usar c++ y pasarselo a java como  nativo, en otras palabra, esta dificil de hacer, pues ya se trata de interactuar con el sistema operativo, yo no lo logre... jajaja..

Código
  1. import java.awt.BorderLayout;
  2. import java.net.URL;
  3. import java.awt.Toolkit;
  4.  
  5. import java.awt.datatransfer.DataFlavor;
  6. import java.awt.datatransfer.Transferable;
  7. import java.awt.dnd.DnDConstants;
  8. import java.awt.dnd.DropTarget;
  9. import java.awt.dnd.DropTargetDragEvent;
  10. import java.awt.dnd.DropTargetDropEvent;
  11. import java.awt.dnd.DropTargetEvent;
  12. import java.awt.dnd.DropTargetListener;
  13. import javax.swing.JFrame;
  14. import javax.swing.JTextArea;
  15. import java.awt.event.FocusAdapter;
  16. import java.awt.event.FocusEvent;
  17. import java.awt.Image;
  18. import java.awt.Color;
  19. import java.awt.Graphics;
  20.  
  21. import java.net.Socket;
  22.  
  23. public class ClipBoard extends JFrame implements DropTargetListener {
  24. JTextArea ta = new JTextArea () ;
  25. String path;
  26. String ip;
  27. int puerto2;
  28. Toolkit  pic,pic2;
  29. URL url,url2;
  30.  
  31. boolean estado=false;
  32.  
  33. public ClipBoard () {
  34.  
  35. getContentPane () .add ( ta, BorderLayout.CENTER ) ;
  36. dt = new DropTarget ( ta, this ) ;
  37.  
  38. ta.setBackground(Color.WHITE);
  39. setSize(100, 100);
  40. setLocation(15, 15);
  41. setDefaultCloseOperation(EXIT_ON_CLOSE);
  42. setVisible(true);
  43. setAlwaysOnTop(true);
  44. }
  45.  
  46. public void dragExit ( DropTargetEvent dte ) {}
  47. public void dragOver ( DropTargetDragEvent dtde ) { }
  48. public void dropActionChanged ( DropTargetDragEvent dtde ) {}
  49.  
  50. public void dragEnter ( DropTargetDragEvent dtde ) {
  51. System.out.println ( "entro" ) ;
  52. }
  53.  
  54. public void drop ( DropTargetDropEvent dtde ) {
  55. try {
  56. int i=0;
  57. Transferable tr = dtde.getTransferable ();
  58. DataFlavor [] flavors = tr.getTransferDataFlavors () ;
  59. if ( flavors [ i ] .isFlavorJavaFileListType ()) {
  60. dtde.acceptDrop ( DnDConstants.ACTION_COPY_OR_MOVE ) ;
  61. path=""+tr.getTransferData ( flavors [ i ]);
  62. path=path.substring(1,path.length()-1);
  63. ta.append (path+"\n");
  64. System.out.println(path);
  65. estado=true;
  66.  
  67. repaint();
  68. dtde.dropComplete ( true ) ;
  69. return ;
  70. }
  71. dtde.rejectDrop () ;
  72. }
  73. catch ( Exception e ) {
  74. System.out.println("1_Clipboard");
  75. e.printStackTrace () ;
  76. dtde.rejectDrop () ;
  77. }
  78. }
  79.  
  80. public static void main(String arg[]){
  81. ClipBoard clip=new ClipBoard();
  82. }
  83. }
  84.  
  85.  
  86.  

Esta es una pequeña clase, lo que haces, es que cualquier archivo que arrastres al jdialog te devuelve la ruta donde esta almacenada (aunque puedes agregarle que haga mas cosa, solo hay que investigar un poco), pero parece que solo funciona en windows, lo cheque en linux y me parece, mas no estoy seguro de que no funciona, espero te sirva.

Saludos


« Última modificación: 15 Marzo 2010, 18:40 pm por danyelk_6u5 » En línea

noobdai

Desconectado Desconectado

Mensajes: 27



Ver Perfil
Re: Capturar texto seleccionado y copiado, con un evento
« Respuesta #2 en: 15 Marzo 2010, 19:07 pm »

ammm... no se como hacer eso que pides, pero una vez que tuve q hacer algo parecido lo soluciones podiendo un JDialog en una esquina de la pantalla la cual se mantenia todo el tiempo visible y sobre cualkier cosa (setAlwaysOnTop(true)), la cual cada vez  que necesitaba mandar algo al portapales, seleccionaba lo que necesitaba, y lo arrastraba hasta donde se encontraba el JDialog... y..... pues no es lo que necesitas, pero funciona.
 Otra opción que me dio mi maestro es hacer un "enganche" o "hook" al mouse, para lo cual necesitas usar c++ y pasarselo a java como  nativo, en otras palabra, esta dificil de hacer, pues ya se trata de interactuar con el sistema operativo, yo no lo logre... jajaja..

Código
  1. import java.awt.BorderLayout;
  2. import java.net.URL;
  3. import java.awt.Toolkit;
  4.  
  5. import java.awt.datatransfer.DataFlavor;
  6. import java.awt.datatransfer.Transferable;
  7. import java.awt.dnd.DnDConstants;
  8. import java.awt.dnd.DropTarget;
  9. import java.awt.dnd.DropTargetDragEvent;
  10. import java.awt.dnd.DropTargetDropEvent;
  11. import java.awt.dnd.DropTargetEvent;
  12. import java.awt.dnd.DropTargetListener;
  13. import javax.swing.JFrame;
  14. import javax.swing.JTextArea;
  15. import java.awt.event.FocusAdapter;
  16. import java.awt.event.FocusEvent;
  17. import java.awt.Image;
  18. import java.awt.Color;
  19. import java.awt.Graphics;
  20.  
  21. import java.net.Socket;
  22.  
  23. public class ClipBoard extends JFrame implements DropTargetListener {
  24. JTextArea ta = new JTextArea () ;
  25. String path;
  26. String ip;
  27. int puerto2;
  28. Toolkit  pic,pic2;
  29. URL url,url2;
  30.  
  31. boolean estado=false;
  32.  
  33. public ClipBoard () {
  34.  
  35. getContentPane () .add ( ta, BorderLayout.CENTER ) ;
  36. dt = new DropTarget ( ta, this ) ;
  37.  
  38. ta.setBackground(Color.WHITE);
  39. setSize(100, 100);
  40. setLocation(15, 15);
  41. setDefaultCloseOperation(EXIT_ON_CLOSE);
  42. setVisible(true);
  43. setAlwaysOnTop(true);
  44. }
  45.  
  46. public void dragExit ( DropTargetEvent dte ) {}
  47. public void dragOver ( DropTargetDragEvent dtde ) { }
  48. public void dropActionChanged ( DropTargetDragEvent dtde ) {}
  49.  
  50. public void dragEnter ( DropTargetDragEvent dtde ) {
  51. System.out.println ( "entro" ) ;
  52. }
  53.  
  54. public void drop ( DropTargetDropEvent dtde ) {
  55. try {
  56. int i=0;
  57. Transferable tr = dtde.getTransferable ();
  58. DataFlavor [] flavors = tr.getTransferDataFlavors () ;
  59. if ( flavors [ i ] .isFlavorJavaFileListType ()) {
  60. dtde.acceptDrop ( DnDConstants.ACTION_COPY_OR_MOVE ) ;
  61. path=""+tr.getTransferData ( flavors [ i ]);
  62. path=path.substring(1,path.length()-1);
  63. ta.append (path+"\n");
  64. System.out.println(path);
  65. estado=true;
  66.  
  67. repaint();
  68. dtde.dropComplete ( true ) ;
  69. return ;
  70. }
  71. dtde.rejectDrop () ;
  72. }
  73. catch ( Exception e ) {
  74. System.out.println("1_Clipboard");
  75. e.printStackTrace () ;
  76. dtde.rejectDrop () ;
  77. }
  78. }
  79.  
  80. public static void main(String arg[]){
  81. ClipBoard clip=new ClipBoard();
  82. }
  83. }
  84.  
  85.  
  86.  

Esta es una pequeña clase, lo que haces, es que cualquier archivo que arrastres al jdialog te devuelve la ruta donde esta almacenada (aunque puedes agregarle que haga mas cosa, solo hay que investigar un poco), pero parece que solo funciona en windows, lo cheque en linux y me parece, mas no estoy seguro de que no funciona, espero te sirva.

Saludos

Gracias por tu idea danyelk_6u5  pero me gustaría saber como hacerlo mediante un evento directo.

De todas formas agradezco tú ayuda  :)
Saludos
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Capturar texto seleccionado y copiado, con un evento
« Respuesta #3 en: 16 Marzo 2010, 22:42 pm »

Te ha dicho que no se puede xD

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines