[hulp nodig] Java checken als clipboard string nog hetzelfde is, meer info in topic.

Status
Niet open voor verdere reacties.

ItsSacraficed

Gebruiker
Lid geworden
21 sep 2011
Berichten
7
Hallo ik ben met een clipboard app bezig op dit moment console based,
hij print nu elke 5 seconden de string die in de clipboard zit (dus de clipboard text).
Ik wil dat het programma kijkt of de string nog steeds hetzelfde is en pas print als het weer veranderd is.

Dit is de code tot nu toe. Wie kan mij helpen?

Code:
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;

public class GetStringFromClipboard {
	
	public static boolean running = true;

	public static void main(String[] args) throws Exception {
		while(running){
			
			try{
				  Thread.currentThread();
				Thread.sleep(5000);
				
				}
				catch(InterruptedException ie){
					
				}
					
					Toolkit toolkit = Toolkit.getDefaultToolkit();
					Clipboard clipboard = toolkit.getSystemClipboard();
					String result = (String) clipboard.getData(DataFlavor.stringFlavor);
					System.out.println("String from Clipboard:\t" + result);
		}
	}
}
 
snelle oplossing:

zet wat in je catch staat in je try.

catch wordt namelijk aageroepen bij errors/exceptions. dus die code wordt nooit uitgevoerd
 
dat is puur voor sleep en hij voert de code wel uit zo als het nu staat, hij print nu elke 5 seconde de text wat in het clipboard staat, en dat moet hij pas doen als het is veranderd dus als het eerst piet is 1x piet printen, en nu gebuerd dat dus elke 5 seconden maar het moet zijn 1x piet en als het klaas word dat hij dan 1x klaas print.
 
Ah sorry ik had een accolade over het hoofd gezien. de logica staat niet in de catch maar er onder:)

iig, je wilt dus de data opslaan en vergelijken met de vorige, dan kan jeh et simpelweg gewoon opslaan en vergelijken:

[cpp]
static boolean running = true;
static String previous = "";
public static void main(String[] args){


Thread.currentThread();


while (running){
try {
Thread.sleep(1000);

Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard();
String current = (String) clipboard.getData(DataFlavor.stringFlavor);
if (current.equals(previous) == false){
System.out.println("String from Clipboard:\t" + current);
previous = current;
}

} catch (UnsupportedFlavorException | IOException | InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
[/cpp]
 
catch (UnsupportedFlavorException | IOException | InterruptedException e) {
de unsopported pakt het wel de rest niet.. waar ligt dit aan? ik heb al aantal dinge geprobeerd maar het lukt nog niet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan