Witam napisałem sobie taką klasę:
package pl.asseco.amms.instalatorperyf.components;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
public class URLLabel extends JLabel {
private Color kolorPodkreslenia;
public URLLabel() {
super();
setForeground(Color.BLUE.darker());
setCursor(new Cursor(Cursor.HAND_CURSOR));
addMouseListener(new URLLabelHyperlinkLabel());
}
@Override
public void setText(String text) {
super.setText(text);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (kolorPodkreslenia == null) {
g.setColor(getForeground());
} else {
g.setColor(kolorPodkreslenia);
}
Insets insets = getInsets();
int left = insets.left;
if (getIcon() != null) {
left += getIcon().getIconWidth() + getIconTextGap();
}
g.drawLine(left, getHeight() - 1 - insets.bottom, (int) getPreferredSize().getWidth()
- insets.right, getHeight() - 1 - insets.bottom);
}
public class URLLabelHyperlinkLabel extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent e) {
// i tutaj problem
}
}
public Color getUnderlineColor() {
return kolorPodkreslenia;
}
public void setUnderlineColor(Color underlineColor) {
this.kolorPodkreslenia = underlineColor;
}
}
Tekst wyglada jak link i kursor reaguje poprawnie ale teraz nie wiem jak "dać znać" systemowi że ma otworzyć domyślną przeglądarke i wejsć na tą stronę.
Jakieś pomysły?
PS: To jest stand alone app