Java Tutorial/Swing/JEditorPane

Материал из Java эксперт
Версия от 18:31, 31 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Change mouse cursor during mouse-over action on hyperlinks

   <source lang="java">

import java.io.FileNotFoundException; import javax.swing.JEditorPane; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLFrameHyperlinkEvent; public class Main implements HyperlinkListener {

 private JEditorPane pane;
 public Main(JEditorPane jep) {
   pane = jep;
 }
 public void hyperlinkUpdate(HyperlinkEvent he) {
   HyperlinkEvent.EventType type = he.getEventType();
   if (type == HyperlinkEvent.EventType.ENTERED) {
       System.out.println(he.getURL().toString());
   } else if (type == HyperlinkEvent.EventType.EXITED) {
     System.out.println("Exited");
   } else if (type == HyperlinkEvent.EventType.ACTIVATED) {
     if (he instanceof HTMLFrameHyperlinkEvent) {
       HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent) he;
       HTMLDocument doc = (HTMLDocument) pane.getDocument();
       doc.processHTMLFrameHyperlinkEvent(evt);
     } else {
       try {
         pane.setPage(he.getURL());
         System.out.println(he.getURL().toString());
       } catch (FileNotFoundException fnfe) {
pane.setText("Could not open file: " + he.getURL() + ".
");
       } catch (Exception e) {
         e.printStackTrace();
       }
     }
   }
 }

}</source>





How to change mouse cursor during mouse-over action on hyperlinks

   <source lang="java">

import javax.swing.JEditorPane; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLFrameHyperlinkEvent; public class Main implements HyperlinkListener {

 private JEditorPane pane;
 public Main(JEditorPane jep) {
   pane = jep;
 }
 public void hyperlinkUpdate(HyperlinkEvent he) {
   HyperlinkEvent.EventType type = he.getEventType();
   if (type == HyperlinkEvent.EventType.ENTERED) {
     System.out.println(he.getURL().toString());
   } else if (type == HyperlinkEvent.EventType.EXITED) {
     System.out.println("exit");
   } else if (type == HyperlinkEvent.EventType.ACTIVATED) {
     if (he instanceof HTMLFrameHyperlinkEvent) {
       HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent) he;
       HTMLDocument doc = (HTMLDocument) pane.getDocument();
       doc.processHTMLFrameHyperlinkEvent(evt);
     } else {
       try {
         pane.setPage(he.getURL());
         System.out.println(he.getURL().toString());
       } catch (Exception e) {
         e.printStackTrace();
       }
     }
   }
 }

}</source>





JEditorPane Look and Feel

Property StringObject TypeEditorPane.actionMapActionMapEditorPane.backgroundColorEditorPane.borderBorderEditorPane.caretAspectRatioNumberEditorPane.caretBlinkRateIntegerEditorPane.caretForegroundColorEditorPane.focusInputMapInputMapEditorPane.fontFontEditorPane.foregroundColorEditorPane.inactiveForegroundColorEditorPane.keyBindingsKeyBinding[ ]EditorPane.marginInsetsEditorPane.selectionBackgroundColorEditorPane.selectionForegroundColorEditorPaneUIString


Loading HTML Documents as a StyledDocument into a JEditorPane

The JEditorPane class provides the ability to display and edit multiple-attributed text.



   <source lang="java">

import java.awt.BorderLayout; import java.io.FileReader; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.text.html.HTMLEditorKit; public class LoadingHTMLDocuments {

 public static void main(String args[])throws Exception {
   JFrame frame = new JFrame("Tab Attributes");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JEditorPane editorPane = new JEditorPane();
   editorPane.setEditorKit(new HTMLEditorKit());
   
   String filename = "yourFile.htm";
   
   FileReader reader = new FileReader(filename);
   editorPane.read(reader, filename);
   JScrollPane scrollPane = new JScrollPane(editorPane);
   frame.add(scrollPane, BorderLayout.CENTER);
   frame.setSize(300, 150);
   frame.setVisible(true);
 }

}</source>





Loading Web Page To JEditorPane

   <source lang="java">

import java.net.URL; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JScrollPane; public class LoadingWebPageToJEditorPane {

 public static void main(String[] a)throws Exception {
   JFrame frame = new JFrame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JEditorPane editorPane = new JEditorPane();
   editorPane.setPage(new URL("http://www.jexp.ru"));
   frame.add(new JScrollPane(editorPane));
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}</source>





Show html

   <source lang="java">

import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JScrollPane; public class Main {

 public static void main(String[] args) throws Exception {
   JEditorPane editor = new JEditorPane("text/html",
"

A!

blue

");
   editor.setEditable(false);
   JScrollPane pane = new JScrollPane(editor);
   JFrame f = new JFrame("HTML Demo");
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.getContentPane().add(pane);
   f.setSize(800, 600);
   f.setVisible(true);
 }

}</source>





Using Actions with Text Components: JEditorPane

   <source lang="java">

import java.util.Arrays; import java.util.ruparator; import javax.swing.Action; import javax.swing.JEditorPane; import javax.swing.text.JTextComponent; public class ListActionsJEditorPane {

 public static void main(String args[]) {
   JTextComponent component = new JEditorPane();
   // Process action list
   Action actions[] = component.getActions();
   // Define comparator to sort actions
   Comparator<Action> comparator = new Comparator<Action>() {
     public int compare(Action a1, Action a2) {
       String firstName = (String) a1.getValue(Action.NAME);
       String secondName = (String) a2.getValue(Action.NAME);
       return firstName.rupareTo(secondName);
     }
   };
   Arrays.sort(actions, comparator);
   int count = actions.length;
   System.out.println("Count: " + count);
   for (int i = 0; i < count; i++) {
     System.out.printf("%28s : %s\n",actions[i].getValue(Action.NAME),actions[i].getClass().getName());
   }
 }

}</source>



Count: 53
                        beep : javax.swing.text.DefaultEditorKit$BeepAction
              caret-backward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
                 caret-begin : javax.swing.text.DefaultEditorKit$BeginAction
            caret-begin-line : javax.swing.text.DefaultEditorKit$BeginLineAction
       caret-begin-paragraph : javax.swing.text.DefaultEditorKit$BeginParagraphAction
            caret-begin-word : javax.swing.text.DefaultEditorKit$BeginWordAction
                  caret-down : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
                   caret-end : javax.swing.text.DefaultEditorKit$EndAction
              caret-end-line : javax.swing.text.DefaultEditorKit$EndLineAction
         caret-end-paragraph : javax.swing.text.DefaultEditorKit$EndParagraphAction
              caret-end-word : javax.swing.text.DefaultEditorKit$EndWordAction
               caret-forward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
             caret-next-word : javax.swing.text.DefaultEditorKit$NextWordAction
         caret-previous-word : javax.swing.text.DefaultEditorKit$PreviousWordAction
                    caret-up : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
           copy-to-clipboard : javax.swing.text.DefaultEditorKit$CopyAction
            cut-to-clipboard : javax.swing.text.DefaultEditorKit$CutAction
               default-typed : javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction
                 delete-next : javax.swing.text.DefaultEditorKit$DeleteNextCharAction
             delete-previous : javax.swing.text.DefaultEditorKit$DeletePrevCharAction
                  dump-model : javax.swing.text.DefaultEditorKit$DumpModelAction
                insert-break : javax.swing.text.DefaultEditorKit$InsertBreakAction
              insert-content : javax.swing.text.DefaultEditorKit$InsertContentAction
                  insert-tab : javax.swing.text.DefaultEditorKit$InsertTabAction
                   page-down : javax.swing.text.DefaultEditorKit$VerticalPageAction
                     page-up : javax.swing.text.DefaultEditorKit$VerticalPageAction
        paste-from-clipboard : javax.swing.text.DefaultEditorKit$PasteAction
                  select-all : javax.swing.text.DefaultEditorKit$SelectAllAction
                 select-line : javax.swing.text.DefaultEditorKit$SelectLineAction
            select-paragraph : javax.swing.text.DefaultEditorKit$SelectParagraphAction
                 select-word : javax.swing.text.DefaultEditorKit$SelectWordAction
          selection-backward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
             selection-begin : javax.swing.text.DefaultEditorKit$BeginAction
        selection-begin-line : javax.swing.text.DefaultEditorKit$BeginLineAction
   selection-begin-paragraph : javax.swing.text.DefaultEditorKit$BeginParagraphAction
        selection-begin-word : javax.swing.text.DefaultEditorKit$BeginWordAction
              selection-down : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
               selection-end : javax.swing.text.DefaultEditorKit$EndAction
          selection-end-line : javax.swing.text.DefaultEditorKit$EndLineAction
     selection-end-paragraph : javax.swing.text.DefaultEditorKit$EndParagraphAction
          selection-end-word : javax.swing.text.DefaultEditorKit$EndWordAction
           selection-forward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
         selection-next-word : javax.swing.text.DefaultEditorKit$NextWordAction
         selection-page-down : javax.swing.text.DefaultEditorKit$VerticalPageAction
         selection-page-left : javax.swing.text.DefaultEditorKit$PageAction
        selection-page-right : javax.swing.text.DefaultEditorKit$PageAction
           selection-page-up : javax.swing.text.DefaultEditorKit$VerticalPageAction
     selection-previous-word : javax.swing.text.DefaultEditorKit$PreviousWordAction
                selection-up : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
               set-read-only : javax.swing.text.DefaultEditorKit$ReadOnlyAction
                set-writable : javax.swing.text.DefaultEditorKit$WritableAction
 toggle-componentOrientation : javax.swing.text.DefaultEditorKit$ToggleComponentOrientationAction
                    unselect : javax.swing.text.DefaultEditorKit$UnselectAction