Java Tutorial/Swing/JEditorPane — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 18:31, 31 мая 2010
Содержание
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