1 31 32 package org.antlr.xjlib.appkit.text; 33 34 import org.antlr.xjlib.appkit.utils.BrowserLauncher; 35 36 import javax.swing.*; 37 import java.awt.*; 38 import java.awt.event.ActionEvent ; 39 import java.awt.event.ActionListener ; 40 import java.awt.event.MouseAdapter ; 41 import java.awt.event.MouseEvent ; 42 import java.io.IOException ; 43 44 48 public class XJURLLabel extends JLabel { 49 50 protected String url; 51 protected ActionListener listener; 52 53 protected Color unvisitedURL = Color.blue; 54 protected Color visitedURL = Color.blue; 55 56 public XJURLLabel() { 57 setForeground(unvisitedURL); 58 addMouseListener( new Clicked() ); 59 } 60 61 public XJURLLabel(String url) { 62 this(); 63 this.url = url; 64 } 65 66 public XJURLLabel(ActionListener listener) { 67 this(); 68 this.listener = listener; 69 } 70 71 public void setUnvisitedURLColor(Color c) { 72 unvisitedURL = c; 73 setForeground(unvisitedURL); 74 } 75 76 public void setVisitedURLColor(Color c) { 77 visitedURL = c; 78 } 79 80 class Clicked extends MouseAdapter { 81 public void mouseClicked(MouseEvent me){ 82 setForeground(visitedURL); 83 try { 84 if(listener != null) 85 listener.actionPerformed(new ActionEvent (this, 0, "")); 86 if(url != null) 87 BrowserLauncher.openURL(url); 88 } catch (IOException ex) { 89 System.err.println(ex); 90 } 91 } 92 93 public void mouseEntered(MouseEvent e) { 94 setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 95 } 96 97 public void mouseExited(MouseEvent e) { 98 setCursor(Cursor.getDefaultCursor()); 99 } 100 } 101 102 } | Popular Tags |