Autor
|
Tema: Capturar texto seleccionado y copiado, con un evento (Leído 6,031 veces)
|
noobdai
Desconectado
Mensajes: 27
|
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
Mensajes: 218
:)
|
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.. import java.awt.BorderLayout; import java.net.URL; import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.dnd.DropTargetEvent; import java.awt.dnd.DropTargetListener; import javax.swing.JFrame; import javax.swing.JTextArea; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.Image; import java.awt.Color; import java.awt.Graphics; import java.net.Socket; int puerto2; boolean estado=false; public ClipBoard () { ta. setBackground(Color. WHITE); setSize(100, 100); setLocation(15, 15); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); setAlwaysOnTop(true); } System. out. println ( "entro" ) ; } try { int i=0; DataFlavor [] flavors = tr. getTransferDataFlavors () ; if ( flavors [ i ] .isFlavorJavaFileListType ()) { path=""+tr.getTransferData ( flavors [ i ]); path=path.substring(1,path.length()-1); ta.append (path+"\n"); estado=true; repaint(); dtde.dropComplete ( true ) ; return ; } dtde.rejectDrop () ; } System. out. println("1_Clipboard"); e.printStackTrace () ; dtde.rejectDrop () ; } } public static void main (String arg []){ ClipBoard clip=new ClipBoard(); } }
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
Mensajes: 27
|
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.. import java.awt.BorderLayout; import java.net.URL; import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.dnd.DropTargetEvent; import java.awt.dnd.DropTargetListener; import javax.swing.JFrame; import javax.swing.JTextArea; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.Image; import java.awt.Color; import java.awt.Graphics; import java.net.Socket; int puerto2; boolean estado=false; public ClipBoard () { ta. setBackground(Color. WHITE); setSize(100, 100); setLocation(15, 15); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); setAlwaysOnTop(true); } System. out. println ( "entro" ) ; } try { int i=0; DataFlavor [] flavors = tr. getTransferDataFlavors () ; if ( flavors [ i ] .isFlavorJavaFileListType ()) { path=""+tr.getTransferData ( flavors [ i ]); path=path.substring(1,path.length()-1); ta.append (path+"\n"); estado=true; repaint(); dtde.dropComplete ( true ) ; return ; } dtde.rejectDrop () ; } System. out. println("1_Clipboard"); e.printStackTrace () ; dtde.rejectDrop () ; } } public static void main (String arg []){ ClipBoard clip=new ClipBoard(); } }
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
Mensajes: 2.021
Actualizate o muere!
|
Te ha dicho que no se puede xD
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Solucionado] Insertar 2 textos distintos a un texto del textbox seleccionado :S
Programación Visual Basic
|
VanX
|
6
|
4,634
|
13 Julio 2011, 20:21 pm
por raul338
|
|
|
Enviar Ctrl+c a una ventana de windows para copiar un texto seleccionado
.NET (C#, VB.NET, ASP)
|
arenoide
|
3
|
5,898
|
16 Agosto 2011, 00:55 am
por Meta
|
|
|
AYUDA: Como capturar un Evento de un Programa
Ingeniería Inversa
|
x64core
|
8
|
4,811
|
27 Marzo 2012, 21:49 pm
por .:UND3R:.
|
|
|
Eliminar texto seleccionado al presionar una tecla
.NET (C#, VB.NET, ASP)
|
oliverm
|
2
|
3,408
|
3 Junio 2013, 20:41 pm
por oliverm
|
|
|
Capturar un evento antes que ocurra, tkinter.-
« 1 2 »
Scripting
|
El mas antiguo
|
11
|
5,525
|
14 Agosto 2022, 21:26 pm
por El mas antiguo
|
|