Uvod u JEditorPane

JEditorPane klasa u javi koristi se za prikaz tekstualnih komponenti koje mogu stilom upravljati različitim vrstama teksta. Prema zadanim postavkama može raditi samo s HTML-om, običnim i obogaćenim tekstom (RTF). JEditorPane se prvenstveno koristi za prikazivanje HTML sadržaja s ograničenim osnovnim HTML oznakama.

Kako bi imala takvo ponašanje ova komponenta koristi implementacije EditorKit. Ljepota je u tome što se automatski prilagođava odgovarajućoj vrsti uređivača teksta zavisno od vrste sadržaja u kojem se nalazi. Trenutno instalirani EditorKit koristi se za određivanje sadržaja na koji je urednik vezan u bilo kojem trenutku. Na primjer, ako je sadržaj komponente postavljen na novi URL, tada se njegova vrsta koristi za određivanje EditorKita koji bi trebao biti predinstaliran za učitavanje sadržaja.

Sintaksa:

public class JEditorPane extends JTextComponent

Ova klasa je prema zadanim postavkama konfigurirana na sljedeće tri vrste sadržaja:

  • text / plain: Običan tekst, što je zadana vrsta kada sadržaj nije prepoznat. Ovdje korišteni kit je proširenje DefaultEditorKit koje će stvoriti zamotani pregled običnog teksta.
  • text / HTML: HTML tekst. Ovdje korišteni komplet je klasa javax.swing.text.html.HTMLEditorkit koja će pružiti podršku do HTML-a (ver. 3.2).
  • tekst / RTF: RTF tekst. Ovdje korišteni komplet je klasa javax.swing.text.rtf.RTFEditorkit koja će pružiti ograničenu podršku Format obogaćenog teksta.

Konstruktori JEditorPane

Ispod su konstruktori JEditorPanea:

  1. JEditorPane (): Ova vrsta konstruktora jednostavno će stvoriti novi JEditorPane.
  2. JEditorPane (string string): Ova vrsta konstruktora stvorit će JEditorPane na temelju niza u parametru koji sadrži specifikacije URL-a.
  3. JEditorPane (početna URL adresa): Ovaj će konstruktor stvoriti JEditorPane na temelju navedenog URL-a u ulaznom parametru.
  4. JEditorPane (vrsta niza, String tekst): Ovaj će konstruktor stvoriti JEditorPane koji je inicijaliziran na tekst dat u parametru.

Neke korisne metode klase JEditoPane

Evo sljedeće metode:

  1. void setText (String text): Ova će metoda postaviti tekst komponente s navedenim tekstom navedenim u ulazu, za koji se očekuje da će biti u istoj vrsti sadržaja kao i uređivač.
  2. Void getText (): Ova metoda će vratiti tekst komponente unutar zadane vrste sadržaja uređivača.
  3. Neispravan setPage (URL stranica): Ova će metoda pokrenuti JEditorPane da prikaže navedeni URL kao trenutnu stranicu.
  4. Void setContentType (vrsta stringa): ova se metoda koristi za postavljanje vrste sadržaja s kojim se uređivač može baviti.
  5. Poništi addHyperlinkListener (slušatelj HyperlinkListener): Ova metoda će komponenti dodati slušatelja hiperveza koja će vam pomoći da obavijesti kad god se klikne ili odabere veza ili hiperveza.

Primjer JEditorPane klase

Ispod su primjeri JEditorPane:

Ovdje ćemo u ovom primjeru stvoriti čitač web stranica pomoću JEditorPane u Javi. Ne možemo ga smatrati i web preglednikom, jer JEditorPane može koristiti samo za prikazivanje HTML sadržaja i ne može prikazati CSS ili bilo koji drugi stilski sadržaj, ali još uvijek nekim web stranicama s tamo HTML sadržajem može se pristupiti putem primjera, kao i mi otvorite bilo koju HTML datoteku spremljenu na lokalnom računalu.

Ovdje kako bismo izgradili preglednik web stranica, prvo ćemo kreirati okno za uređivanje koje će prikazati HTML sadržaj, a zatim stvoriti JTextfield koji će se koristiti za popunjavanje URL-a i JButton koji se koristi za pretraživanje URL-a na webu. Dodajte radnju slušatelju gumba i hiperveza koje se mogu koristiti za bilo koju hipervezu na HTML stranici. Na kraju dodajte sve komponente na ploču, a ploču na skup okvira i također učinite da web stranica postane samo za čitanje tako da se ne mogu izvršiti nikakve promjene pomoću metode setEditable kao lažne.

Kodirati:

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

Izlaz:

Zaključak

Klasa JEditorPane može se koristiti za prikaz normalnog HTML-a, sadržaja obogaćenog teksta ili običnog teksta s malo stila. Klasa JEditorPane pruža prednost nad JTextPanes za pružanje tekstualne komponente, jer klasa JEditorPane pruža konstruktorima da inicijaliziraju okno uređivača oblikujući URL, dok JTextPane nema takve izvođače.

Preporučeni članci

Ovo je vodič za JEditorPane. Ovdje raspravljamo o konstruktorima, metodama i primjerima u JEditorPane. Možete i pregledati naše druge povezane članke da biste saznali više -

  1. Urednici Pythona
  2. JScrollPane u Javi
  3. JTextField u Javi
  4. Uvod u JPanel na Javi
  5. JFrame u Javi

Kategorija: