Úvod do programu JEditorPane

Trieda JEditorPane v jave sa používa na zobrazenie textových komponentov, ktoré môžu štýlom spracovať rôzne typy textu. V predvolenom nastavení dokáže spracovať iba formát HTML, obyčajný formát a formát RTF. JEditorPane sa používa predovšetkým na zobrazenie obsahu HTML s obmedzenými základnými značkami HTML.

Aby sa toto správanie dosiahlo, táto súčasť používa implementáciu EditorKit. Krása spočíva v tom, že sa automaticky prispôsobí správnemu druhu textového editora, podľa toho, aký druh obsahu je poskytovaný. Editor, ktorý je aktuálne nainštalovaný, sa používa na určenie obsahu, na ktorý je editor viazaný v ktoromkoľvek danom čase. Napríklad, ak je obsah komponentu nastavený na novú adresu URL, potom sa jeho typ použije na určenie EditorKit, ktorý by mal byť predinštalovaný na načítanie obsahu.

syntaxe:

public class JEditorPane extends JTextComponent

V predvolenom nastavení je táto trieda predkonfigurovaná na nasledujúce tri typy obsahu:

  • text / plain: obyčajný text, čo je predvolený typ, keď sa obsah nerozpozná. Súprava, ktorá sa tu používa, je rozšírením DefaultEditorKit, ktorý vytvorí zalomený obyčajný text.
  • text / HTML: HTML text. Súprava použitá tu je trieda javax.swing.text.html.HTMLEditorkit, ktorá bude poskytovať podporu do HTML (ver. 3.2).
  • RTF: RTF Text. Súprava použitá tu je trieda javax.swing.text.rtf.RTFEditorkit, ktorá poskytuje obmedzenú podporu formátovaného textu.

Konštruktori JEditorPane

Nižšie sú uvedení konštruktéri JEditorPane:

  1. JEditorPane (): Tento typ konštruktora jednoducho vytvorí nový JEditorPane.
  2. JEditorPane (String URL): Tento typ konštruktora vytvorí JEditorPane na základe reťazca v parametri obsahujúcom špecifikácie URL.
  3. JEditorPane (úvodná stránka URL): Tento konštruktor vytvorí JEditorPane na základe zadanej adresy URL vo vstupnom parametri.
  4. JEditorPane (Typ reťazca, text reťazca): Tento konštruktor vytvorí JEditorPane, ktorý bol inicializovaný na text uvedený v parametri.

Niektoré užitočné metódy triedy JEditoPane

Nasleduje táto metóda:

  1. void setText (String text): Táto metóda nastaví text komponenty so zadaným textom zadaným vo vstupe, od ktorého sa očakáva, že bude v rovnakom type obsahu ako editor.
  2. Void getText (): Táto metóda vráti text komponenty v rámci zadaného typu obsahu editora.
  3. Void setPage (stránka URL): Táto metóda spustí program JEditorPane, ktorý zobrazí zadanú adresu URL ako aktuálnu stránku.
  4. Void setContentType (Typ reťazca): Táto metóda sa používa na nastavenie typu obsahu, s ktorým môže editor pracovať.
  5. Void addHyperlinkListener (HyperlinkListener poslucháč): Táto metóda pridá poslucháča hypertextového odkazu do komponentu, ktorý pomôže upozorniť vždy, keď sa klikne na odkaz alebo hypertextový odkaz, alebo sa vyberie.

Príklad triedy JEditorPane

Nižšie sú uvedené príklady JEditorPane:

V tomto príklade vytvoríme program na čítanie webových stránok pomocou nástroja JEditorPane v jave. Nemôžeme to tiež považovať za webový prehľadávač, pretože program JEditorPane môže používať iba na zobrazovanie obsahu HTML a nemôže zobrazovať žiadny CSS ani iný obsah v štýle, ale stále je možné pristupovať k niektorým webovým stránkam, v ktorých je obsah HTML, prostredníctvom tohto príkladu, ako aj my. otvorte akýkoľvek súbor HTML, ktorý sa uložil na lokálnom počítači.

Tu, aby sme vytvorili webový prehliadač, najskôr vytvoríme tablu editora, ktorá bude zobrazovať obsah HTML, a potom vytvoríme JTextfield, ktorý sa použije na vyplnenie adresy URL, a JButton, ktoré sa používa na vyhľadávanie URL na webe. Pridajte do tlačidla a poslucháča hypertextových odkazov akciu, ktorú je možné použiť pre akýkoľvek hypertextový odkaz na stránke HTML. Nakoniec pridajte všetky komponenty do panela a do panela s rámcami veľkosť rámu a tiež webovú stránku urobte iba na čítanie, aby nebolo možné vykonať žiadne zmeny pomocou metódy setEditable ako False.

kód:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import java.net.MalformedURLException;// Thrown when a URL doesn't contain http://
import java.net.URL;
import javax.swing.JButton;
import javax.swing.event.HyperlinkEvent;// Provides information on events triggered
import javax.swing.event.HyperlinkListener;// Monitors user activity with links
public class JEditorPaneExample extends JFrame implements HyperlinkListener, ActionListener (
public static void main(String() args) (
new JEditorPaneExample("http://www.google.com");
)
String defaultURL;
JPanel panel = new JPanel();
JTextField theURL = new JTextField(25);
JButton search = new JButton("Search");
JEditorPane htmlPage;
public JEditorPaneExample(String defaultURL) (
JFrame frame = new JFrame("Java Browser");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.defaultURL = defaultURL;
// If the user interacts with the JButton then actionPerformed method is called
search.addActionListener(this);
// Set the default text in the JTextField
theURL.setText(defaultURL);
// Add the text field to a panel
panel.add(theURL);
panel.add(search);
// Add the panel to the northern quadrant of a frame
frame.add(panel, BorderLayout.NORTH);
try (
htmlPage = new JEditorPane(defaultURL);
// If the user interacts with the JEditorPane actions are triggered.
htmlPage.addHyperlinkListener(this);
// Display webpage in read-only mode
htmlPage.setEditable(false);
JScrollPane scroller = new JScrollPane(htmlPage);
// Add Scroll pane and JEditorPane to the frame
frame.add(scroller, BorderLayout.CENTER);
)
// If something goes wrong with locating the html page this will handle that error
catch (IOException e) (
e.printStackTrace();
)
frame.setSize(1200, 800);
frame.setVisible(true);
)
public void hyperlinkUpdate(HyperlinkEvent e) (
// Checks if the link was clicked
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) (
try (
// Set the URL to be displayed
htmlPage.setPage(e.getURL());
// toExternalForm creates a String representation of the URL
theURL.setText(e.getURL().toExternalForm());
)
catch (IOException e1) (
e1.printStackTrace();
)
)
)
public void actionPerformed(ActionEvent e) (
String pageURL = "";
if (e.getSource() == search) (
pageURL = theURL.getText();
)
else (
pageURL = defaultURL;
// Opens an alert box when there is an error
JOptionPane.showMessageDialog(JEditorPaneExample.this,
"Please Enter a Web Address", "Error",
JOptionPane.ERROR_MESSAGE);
)
try (
// Sets the URL to be displayed
htmlPage.setPage(new URL(pageURL));
theURL.setText(pageURL);
) catch (MalformedURLException e2) (
JOptionPane.showMessageDialog(JEditorPaneExample.this,
"Please use http://", "Error",
JOptionPane.ERROR_MESSAGE);
) catch (IOException e1) (
e1.printStackTrace();
)
)
)

Výkon:

záver

Trieda JEditorPane sa dá použiť na zobrazenie normálneho HTML, obsahu formátovaného textu alebo obyčajného textu s trochou štýlu. Trieda JEditorPane poskytuje výhodu oproti JTextPanes na poskytovanie textovej zložky, pretože trieda JEditorPane poskytuje konštruktorom inicializáciu panela editora z adresy URL, zatiaľ čo spoločnosť JTextPane nemá takýchto dodávateľov.

Odporúčané články

Toto je sprievodca programom JEditorPane. Tu diskutujeme konštruktérov, metódy a príklady v JEditorPane. Viac informácií nájdete aj v ďalších súvisiacich článkoch -

  1. Editory Pythonu
  2. JScrollPane v Jave
  3. JTextField v Jave
  4. Úvod do JPanel v Jave
  5. JFrame v Jave

Kategórie: