Bevezetés a JEditorPane-ba

A java JEditorPane osztálya olyan szöveges összetevők megjelenítésére szolgál, amelyek stílussal kezelik a különböző típusú szövegeket. Alapértelmezés szerint csak a HTML, a sima és a Rich Text Format (RTF) kezelésére képes. A JEditorPane programot elsősorban a HTML tartalom korlátozott alapvető HTML címkékkel történő megjelenítésére használják.

Annak érdekében, hogy ez a viselkedés megtörténjen, ez az összetevő az EditorKit megvalósításait használja. A szépség az, hogy automatikusan alkalmazkodik a megfelelő szövegszerkesztőhöz, függetlenül attól, hogy melyik tartalmat nyújtja. A jelenleg telepített EditorKit segítségével meghatározható a tartalom, amelyhez a szerkesztő bármikor kötődik. Például, ha egy összetevő tartalmát új URL-re állítja, akkor annak típusát használják annak meghatározására, hogy melyik EditorKit-et kell előre telepíteni a tartalom betöltéséhez.

Szintaxis:

public class JEditorPane extends JTextComponent

Alapértelmezés szerint ez az osztály a következő három típusú tartalomra van előre konfigurálva:

  • text / sima: sima szöveg, amely az alapértelmezett típus, ha a tartalmat nem ismeri fel. Az itt használt készlet a DefaultEditorKit kiterjesztése, amely becsomagolt egyszerű szöveges nézetet fog létrehozni.
  • szöveg / HTML: HTML szöveg. Az itt használt készlet a javax.swing.text.html.HTMLEditorkit osztály, amely a HTML-ig támogatást nyújt (3.2 verzió).
  • szöveg / RTF: RTF szöveg. Az itt használt készlet a javax.swing.text.rtf.RTFEditorkit osztály, amely korlátozott támogatást nyújt a Rich Text Format számára.

A JEditorPane kivitelezői

Az alábbiakban a JEditorPane kivitelezői találhatók:

  1. JEditorPane (): Az ilyen típusú konstruktor egyszerűen létrehoz egy új JEditorPane-t.
  2. JEditorPane (karakterlánc URL): Az ilyen típusú konstruktor létrehoz egy JEditorPane-t az URL-specifikációt tartalmazó paraméter karakterlánca alapján.
  3. JEditorPane (URL kezdőlap): Ez a kivitelező létrehozza a JEditorPane-t a bemeneti paraméterben megadott URL alapján.
  4. JEditorPane (Karakterlánc típusa, Karakterlánc szöveg): Ez a konstruktor létrehoz egy JEditorPane-t, amelyet a paraméterben megadott szöveghez inicializáltak.

A JEditoPane osztály néhány hasznos módszere

Az alábbiakban bemutatjuk a következő módszert:

  1. void setText (Karakterlánc szöveg): Ez a módszer beállítja az összetevő szövegét az inputban megadott megadott szöveggel, amely várhatóan ugyanabban a tartalomban lesz, mint a szerkesztő.
  2. Void getText (): Ez a módszer visszaadja az összetevő szövegét a szerkesztő meghatározott tartalomtípusán belül.
  3. Érvénytelen setPage (URL-oldal): Ez a módszer aktiválja a JEditorPane-t, hogy a megadott URL-t jelenlegi oldalként jelenítse meg.
  4. Void setContentType (karakterlánc típusa): Ez a módszer a szerkesztő által kezelhető tartalom típusának beállítására szolgál.
  5. Érvénytelen addHyperlinkListener (HyperlinkListener figyelő): Ez a módszer hozzáad egy hiperhivatkozás-figyelőt az összetevőhöz, amely segít értesíteni, ha egy linkre vagy hiperhivatkozásra kattintanak vagy kiválasztanak.

Példa a JEditorPane osztályra

Az alábbiakban bemutatjuk a JEditorPane példáit:

Ebben a példában a JEditorPane használatával hozunk létre egy weboldal-olvasót. Nem tekinthetjük azt webböngészőnek sem, mivel a JEditorPane csak HTML tartalom megjelenítésére használható, és nem tud megjeleníteni bármilyen CSS-t vagy bármilyen más stílusú tartalmat, de mégis néhány HTML-tartalmú weboldal elérhető a példa segítségével, valamint mi is nyisson meg minden HTML fájlt, amelyet a helyi számítógépre mentett.

Itt egy weboldal-néző létrehozása érdekében először létrehozunk egy szerkesztőablakot a HTML-tartalom megjelenítéséhez, majd létrehozunk egy JTextfield-et, amelyet az URL kitöltésére használunk, és egy JButton-ot, amelyet az URL-ek keresésére használunk az interneten. Adjon hozzá egy műveletet a gombhoz és a hiperhivatkozás-figyelőhöz, amely felhasználható bármilyen hiperhivatkozásra a HTML oldalon. Végül adjon hozzá minden összetevőt a panelhez és a panelt a képkészlet méretéhez, és tegye a weboldalt csak olvashatóvá, hogy a setEditable módszer hamisként történő módosítása ne történjen meg.

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();
)
)
)

Kimenet:

Következtetés

A JEditorPane osztály felhasználható a normál HTML, a gazdag szöveg formátumú tartalom vagy a sima szöveg megjelenítésére egy kis stílussal. A JEditorPane osztály előnyt nyújt a JTextPanes-hez képest a szövegkomponens biztosításához, mivel a JEditorPane osztály biztosítja az építőknek, hogy a szerkesztő ablakot URL-formálják, míg a JTextPane-nek nincs ilyen vállalkozója.

Ajánlott cikkek

Ez egy útmutató a JEditorPane-hez. Itt a konstruktorokat, a módszereket és a JEditorPane példákat tárgyaljuk. Megnézheti más kapcsolódó cikkeket is, ha többet szeretne megtudni -

  1. Python szerkesztők
  2. JScrollPane Java-ban
  3. JTextField Java
  4. Bevezetés a JPanelhez a Java-ban
  5. JFrame Java

Kategória: