package frame; //~--- JDK imports ------------------------------------------------------------ import java.awt.*; import java.awt.event.*; import java.net.*; import javax.swing.*; public class JHyperLink extends JLabel implements MouseListener { public Cursor Rollover_Cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); public Color LINK_COLOR; public URI uri; public JHyperLink() {} public JHyperLink(String url) throws URISyntaxException { super(url); LINK_COLOR = Color.BLUE; this.setForeground(LINK_COLOR); uri = new URI(url); this.addMouseListener(this); } public JHyperLink(String url, Color color) throws URISyntaxException { super(url); LINK_COLOR = color; this.setForeground(LINK_COLOR); uri = new URI(url); this.addMouseListener(this); } public JHyperLink(String url, String title) throws URISyntaxException { super(title); this.LINK_COLOR = Color.BLUE; this.setForeground(LINK_COLOR); uri = new URI(url); this.addMouseListener(this); } public JHyperLink(String url, String title, Color color) throws URISyntaxException { super(title); LINK_COLOR = color; this.setForeground(LINK_COLOR); uri = new URI(url); this.addMouseListener(this); } @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (enabled == true) { MouseListener[] listeners = this.getMouseListeners(); try { MouseListener listener = listeners[0]; } catch (Exception exc) { this.addMouseListener(new JHyperLink()); } } if (enabled == false) { MouseListener[] listeners = this.getMouseListeners(); for (int i = 0; ; i++) { try { MouseListener listener = listeners[i]; this.removeMouseListener(listener); } catch (Exception exc) { break; } } } } public void setColor(Color color) { this.LINK_COLOR = color; super.setForeground(color); } public void setColor(int r, int g, int b) { Color color = new Color(r, g, b); this.setColor(color); } public void setColor(int r, int g, int b, int a) { Color color = new Color(r, g, b, a); this.setColor(color); } public Color getColor() { return this.LINK_COLOR; } public void setURI(URI uri) { this.uri = uri; } public void setURI(String uri) throws URISyntaxException { this.uri = new URI(uri); } public URI getURI() { return this.uri; } public void setText(String text, Color color) { super.setText(text); this.setColor(color); } public void setText(String text, int r, int g, int b) { super.setText(text); this.setColor(r, g, b); } public void setText(String text, int r, int g, int b, int a) { super.setText(text); this.setColor(r, g, b, a); } public void mouseClicked(MouseEvent e) { JHyperLink link = (JHyperLink) e.getComponent(); try { Desktop.getDesktop().browse(link.uri); } catch (java.io.IOException exc) {} } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) { JHyperLink link = (JHyperLink) e.getComponent(); link.setCursor(link.Rollover_Cursor); } public void mouseExited(MouseEvent e) {} } //~ Formatted by Jindent --- http://www.jindent.com