Úvod do programu JEditorPane

Třída JEditorPane v javě se používá k zobrazení textových komponent, které mohou stylem zpracovávat různé typy textu. Ve výchozím nastavení dokáže zpracovávat pouze HTML, prostý formát a formát RTF. JEditorPane se primárně používá k zobrazení obsahu HTML s omezenými základními značkami HTML.

Aby toto chování mělo, používá tato komponenta implementace EditorKit. Krása spočívá v tom, že se automaticky přizpůsobí správnému druhu textového editoru, podle toho, jaký druh obsahu je poskytován. Editor Editor, který je aktuálně nainstalován, se používá k určení obsahu, ke kterému je editor vázán v daném okamžiku. Pokud je například obsah komponenty nastaven na novou adresu URL, pak se jeho typ použije k určení EditorKit, který by měl být předinstalován k načtení obsahu.

Syntax:

public class JEditorPane extends JTextComponent

Ve výchozím nastavení je tato třída předkonfigurována na následující tři typy obsahu:

  • text / plain: Plain Text, což je výchozí typ, pokud není obsah rozpoznán. Sada použitá zde je rozšíření DefaultEditorKit, které vytvoří zabalené zobrazení prostého textu.
  • text / HTML: HTML text. Sada použitá zde je třída javax.swing.text.html.HTMLEditorkit, která bude poskytovat podporu až do HTML (ver. 3.2).
  • text / RTF: RTF Text. Sada použitá zde je třída javax.swing.text.rtf.RTFEditorkit, která bude poskytovat omezenou podporu formátovaného textu.

Konstruktory JEditorPane

Níže jsou konstruktéři JEditorPane:

  1. JEditorPane (): Tento typ konstruktoru jednoduše vytvoří nový JEditorPane.
  2. JEditorPane (String URL): Tento typ konstruktoru vytvoří JEditorPane na základě řetězce v parametru obsahujícím specifikace URL.
  3. JEditorPane (úvodní stránka URL): Tento konstruktor vytvoří JEditorPane na základě zadané URL ve vstupním parametru.
  4. JEditorPane (Typ řetězce, text řetězce): Tento konstruktor vytvoří JEditorPane, který byl inicializován do textu uvedeného v parametru.

Některé užitečné metody třídy JEditoPane

Následuje následující metoda:

  1. void setText (String text): Tato metoda nastaví text komponenty se zadaným textem zadaným ve vstupu, u kterého se očekává, že bude ve stejném typu obsahu jako editor.
  2. Void getText (): Tato metoda vrátí text komponenty v rámci zadaného typu obsahu editoru.
  3. Void setPage (URL page): Tato metoda spustí JEditorPane pro zobrazení zadané URL jako aktuální stránky.
  4. Void setContentType (typ řetězce): Tato metoda se používá k nastavení typu obsahu, s nímž může editor pracovat.
  5. Void addHyperlinkListener (HyperlinkListener posluchač): Tato metoda přidá posluchače hypertextového odkazu ke komponentě, která pomůže upozornit vždy, když je kliknuto na odkaz nebo hypertextový odkaz.

Příklad třídy JEditorPane

Níže uvádíme příklady JEditorPane:

Zde v tomto příkladu vytvoříme čtečku webových stránek pomocí JEditorPane v java. Nemůžeme to také považovat za webový prohlížeč, protože JEditorPane může používat pouze k zobrazení obsahu HTML a nemůže zobrazit jakýkoli CSS nebo jakýkoli jiný stylingový obsah, ale přesto některé webové stránky, kde je obsah HTML, lze přistupovat prostřednictvím příkladu i my také otevřete jakýkoli soubor HTML, který byl uložen na místním počítači.

Tady, abychom vytvořili prohlížeč webových stránek, nejprve vytvoříme panel editorů, který bude zobrazovat obsah HTML, a poté vytvoříme JTextfield, který se použije k vyplnění adresy URL, a JButton, který se používá k vyhledávání URL na webu. Přidejte do tlačítka a posluchače hypertextových odkazů akci, kterou lze použít pro jakýkoli hypertextový odkaz na stránce HTML. Nakonec přidejte všechny komponenty do panelu a do panelu do sady rámců velikost rámce a také webovou stránku proveďte pouze pro čtení, takže pomocí metody setEditable nelze provést žádné změny jako 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ýstup:

Závěr

Třídu JEditorPane lze použít k zobrazení normálního HTML, obsahu ve formátu RTF nebo prostého textu s trochou stylingu. Třída JEditorPane poskytuje výhodu nad JTextPanes pro poskytování textové komponenty, protože třída JEditorPane poskytuje konstruktérům inicializaci podokna editoru z adresy URL, zatímco JTextPane takové dodavatele nemá.

Doporučené články

Toto je průvodce programem JEditorPane. Zde diskutujeme konstruktéry, metody a příklady v JEditorPane. Další informace naleznete také v dalších souvisejících článcích -

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

Kategorie: