Hallo Leute!(Edit unten lesen)
Habe ein Problem mit Runtime.getRuntime().exec. Ich will auf Knopf(oder Bild)-Druck verschiedene Dinge aufrufen lassen (wie z.B. Internetseite im Standardbrowser oeffnen). Das klappt meistens auch gut, manchmal passiert es aber, dass trotz einfachem Klickens mehrere Seiten geoeffnet werden.
Mein Code:
Das Bild worauf geklickt wird liegt in einem JLabel (BufferedImage-->ImageIcon-->JLabel). Das Klicken wird scheinbar auch eindeutig registriert. Wenn ich etwa anstatt des Seitenaufrufs System.out.println() oder sonstige "primitive" Befehle ausfuehren lasse funktioniert alles zuverlaessig.
Weiss da einer Rat?
Edit: Hach, es ist doch anders als es schien. Runtime scheint zuverlaessig zu funktionieren und es ist doch die Klickregistrierung via MouseListener. Vorherige tests habe ich naemlich mit JButtons gemacht, bei diesen war ein Klick immer auch ein Klick. Ein JLabel aber registriert einen klick als zwei oder drei Klicks?
Was mache ich:
Mache ich hier etwas komplett falsch? Kann mir das nicht erklaeren.
Habe ein Problem mit Runtime.getRuntime().exec. Ich will auf Knopf(oder Bild)-Druck verschiedene Dinge aufrufen lassen (wie z.B. Internetseite im Standardbrowser oeffnen). Das klappt meistens auch gut, manchmal passiert es aber, dass trotz einfachem Klickens mehrere Seiten geoeffnet werden.
Mein Code:
Java:
else if(e.getSource().equals(adminliste))
{
try {
Runtime.getRuntime().exec
("rundll32 url.dll,FileProtocolHandler " + "http://www.eineadresse.de");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
Das Bild worauf geklickt wird liegt in einem JLabel (BufferedImage-->ImageIcon-->JLabel). Das Klicken wird scheinbar auch eindeutig registriert. Wenn ich etwa anstatt des Seitenaufrufs System.out.println() oder sonstige "primitive" Befehle ausfuehren lasse funktioniert alles zuverlaessig.
Weiss da einer Rat?
Edit: Hach, es ist doch anders als es schien. Runtime scheint zuverlaessig zu funktionieren und es ist doch die Klickregistrierung via MouseListener. Vorherige tests habe ich naemlich mit JButtons gemacht, bei diesen war ein Klick immer auch ein Klick. Ein JLabel aber registriert einen klick als zwei oder drei Klicks?
Was mache ich:
Java:
BufferedImage bild = new BufferedImage(new File(path));
ImageIcon IconBild = new ImageIcon(bild);
JLabel labelBild = new JLabel(IconBild);
labelBild.addMouseListener(new MyMouseListener());
class MyMouseListener extends MouseAdapter{
public void mouseReleased(MouseEvent e)
{
int x = 0;
if(e.getSource().equals(labelBild))
{
x++;
System.out.println("ich reagiere " +x);
//das folgende soll eigentlich passieren:
// try {
// Runtime.getRuntime().exec
// ("rundll32 url.dll,FileProtocolHandler " + "http://www.google.de");
// } catch (IOException e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }
}
Mache ich hier etwas komplett falsch? Kann mir das nicht erklaeren.
Zuletzt bearbeitet: