Swing-Komponente Link zur URL

qde

Mitglied
Hallo.
Ich habe nun mein Prgramm fast fertig. Im Impressum möchte ich jedoch noch auf meine Homepage aufmerksam machen. Die HOmepage soll als Link zum anklicken dargestellt werdne. Bisher habe ich leider keine Swing-Komponente gefunden, die mir das ermöglicht. Fatalerweise findet man über die Google-Suche auch nichts, da das Schlüsselwort "Link" wörtlich genommen wird, so das man auf einen Haufen Links zum Thema Java stößt.
Ich hoffe ihr könnt mir helfen.

Vielen Dank!
Felix
 
Jo hab mal sowas gemacht, weil ich das auch haben wollte.. Weiß nicht ob es das ist was du suchst aber hier (Kannste genauso wie andere Labels, Buttons, etc. einbinden (..getContentPane().add(..)):

JLinkLabel.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.MouseEvent;
/**
* <p>Überschrift: JLinkLabel</p>
* <p>Beschreibung: Ein anklickbares Label</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Organisation: none</p>
* @author Tobias Viehweger
* @version 1.0
*/
public class JLinkLabel
	extends JLabel
	implements MouseListener {
private LinkLabelListener listener;
private String text;
private boolean underline;
/**
* Leerer Konstruktor
*/
public JLinkLabel() {
	setText("");
	addMouseListener(this);
	this.text = text;
	underlineOnMouseOver(false);
	setHandCursor(false);
}
/**
*
* Konstruktor
*
* @param text Beschriftung des Labels
*/
public JLinkLabel(String text) {
	setText(text);
	addMouseListener(this);
	this.text = text;
	underlineOnMouseOver(true);
	setHandCursor(true);
}
/**
*
* Konstruktor
*
* @param text Beschriftung des Labels
* @param underline true wenn bei &Uuml;berfahren mit der Maus das Label
*				 unterstrichen werden soll
*
*/
public JLinkLabel(String text, boolean underline) {
	setText(text);
	addMouseListener(this);
	this.text = text;
	underlineOnMouseOver(underline);
	setHandCursor(true);
}
/**
*
* Konstruktor
*
* @param text Beschriftung des Labels
* @param underline true, wenn bei &Uuml;berfahren mit der Maus das Label
*				 unterstrichen werden soll
*
* @param handCursor true, wenn bei &Uuml;berfahren mit der Maus der Cursor
*				 ge&auml;ndert werden soll
*/
public JLinkLabel(String text, boolean underline, boolean handCursor) {
	setText(text);
	addMouseListener(this);
	this.text = text;
	underlineOnMouseOver(underline);
	setHandCursor(handCursor);
}
/**
*
* F&uuml;gt dem Label einen Listener hinzu, damit auf Ereignisse reagiert
* werden kann
*
* @param linkLabelListener Ein LinkLabelListener
*/
public void addLinkLabelListener(LinkLabelListener linkLabelListener) {
	listener = linkLabelListener;
}
public void mouseClicked(MouseEvent mouseEvent) {
	if (mouseEvent.getSource().equals(this) && listener != null) {
	 listener.clickedLabel(mouseEvent);
	}
}
public void mouseEntered(MouseEvent mouseEvent) {
	if (mouseEvent.getSource().equals(this)) {
	 if (underline) {
		setText("<html><u>" + text + "</u></html>");
	 }
	}
}
public void mouseExited(MouseEvent mouseEvent) {
	if (mouseEvent.getSource().equals(this)) {
	 setText("<html>" + text + "</html>");
	}
}
/**
*
* Setzt, ob sich der Cursor bei &Uuml;berfahren mit der Maus &auml;ndert
*
* @param state true, wenn der Cursor eine Hand werden soll
*/
public void setHandCursor (boolean state) {
	if (state) {
	 setCursor(new Cursor(Cursor.HAND_CURSOR));
	}else {
	 setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
	}
}
/**
*
* Setzt, ob das Label bei &Uuml;berfahren mit der Maus unterstrichen werden
* soll
*
* @param state true, wenn es unterstrichen werden soll
*/
public void underlineOnMouseOver (boolean state) {
	underline = state;
}
public void mousePressed(MouseEvent mouseEvent) {
}
public void mouseReleased(MouseEvent mouseEvent) {
}
}

LinkLabelListener.java:
Code:
import java.awt.event.MouseEvent;
/**
* <p>Überschrift: </p>
* <p>Beschreibung: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Organisation: none</p>
* @author Tobias Viehweger
* @version 1.0
*/
public interface LinkLabelListener {
public void clickedLabel(MouseEvent event);
}

Benutzen kannst du es folgendermaßen:
Code:
class Test implements LinkLabelListener
{
.
.
.
 
JLinkLabel label = new JLinkLabel("Klick Mich");
label.addLinkLabelListener(this);
 
.
.
.
public void clickedLabel(MouseEvent event)
{
  //Hier URL aufrufen
  Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler www.meineurl.de" );
}
 
Zuletzt bearbeitet:
Zurück