Как изменить курсора мыши над ходе действий по гипер

Этот совет Java Swing иллюстрирует метод изменения курсора мыши во время мыши над действиями по гиперссылкам. Совет использует гиперссылки слушателю для использования с JEditorPane. Thislistener изменения курсора на гиперссылку на основе ввода / выхода событий, а также загружает новую страницу при действительны гиперссылка нажата.


import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.text.*;

import javax.swing.text.html.*;



public class SimpleLinkListener implements HyperlinkListener {



  private JEditorPane pane;       // The pane we're using to display HTML



  private JTextField  urlField;   // An optional text field for showing

                                    // the current URL being displayed



  private JLabel statusBar;       // An optional label for showing where

                                    // a link would take you



  public SimpleLinkListener(JEditorPane jep, JTextField jtf, JLabel jl)   {

    pane = jep;

    urlField = jtf;

    statusBar = jl;

  }



  public SimpleLinkListener(JEditorPane jep) {

    this(jep, null, null);

  }



  public void hyperlinkUpdate(HyperlinkEvent he) {

    HyperlinkEvent.EventType type = he.getEventType();

    if (type == HyperlinkEvent.EventType.ENTERED) {

      // Enter event.  Fill in the status bar.

      if (statusBar != null) {

        statusBar.setText(he.getURL().toString());

      }

    }

    else if (type == HyperlinkEvent.EventType.EXITED) {

      // Exit event.  Clear the status bar.

      if (statusBar != null) {

        statusBar.setText(" ")// Must be a space or it disappears

      }

    }

    else if (type == HyperlinkEvent.EventType.ACTIVATED) {

      // Jump event.  Get the URL, and, if it's not null, switch to that

      // page in the main editor pane and update the "site url" label.

      if (he instanceof HTMLFrameHyperlinkEvent) {

        // Ahh, frame event; handle this separately.

        HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)he;

        HTMLDocument doc = (HTMLDocument)pane.getDocument();

        doc.processHTMLFrameHyperlinkEvent(evt);

      else {

        try {

          pane.setPage(he.getURL());

          if (urlField != null) {

            urlField.setText(he.getURL().toString());

          }

        }

        catch (FileNotFoundException fnfe) {

          pane.setText("Could not open file: <tt>" + he.getURL() 

                       "</tt>.<hr>");

        }

        catch (Exception e) {

          e.printStackTrace();

        }

      }

    }

  }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>