Uvod v JEditorPane

Razred JEditorPane na Javi se uporablja za prikaz sestavnih delov besedila, ki lahko s slogom obravnavajo različne vrste besedila. Privzeto lahko prenese samo HTML, navaden in obogaten tekst (RTF). JEditorPane se v glavnem uporablja za prikaz vsebine HTML z omejenimi osnovnimi oznakami HTML.

Za to vedenje ta komponenta uporablja izvedbe EditorKit. Lepota je v tem, da se samodejno prilagodi ustreznemu urejevalniku besedila glede na to, katero vsebino ponuja. Trenutno nameščen EditorKit se uporablja za določitev vsebine, na katero je urejevalnik vezan kadar koli. Na primer, če je vsebina komponente nastavljena na nov URL, potem se njen tip uporablja za določitev EditorKit, ki ga je treba prednamestiti za nalaganje vsebine.

Sintaksa:

public class JEditorPane extends JTextComponent

Ta razred je privzeto nastavljen na naslednje tri vrste vsebine:

  • text / plain: Navadno besedilo, ki je privzeta vrsta, ko vsebina ni prepoznana. Tukaj je uporabljen komplet razširitve DefaultEditorKit, ki bo ustvaril zavit navadni tekst.
  • besedilo / HTML: HTML Text. Tukaj je uporabljen komplet javax.swing.text.html.HTMLEditorkit, ki bo zagotavljal podporo do HTML (ver. 3.2).
  • text / RTF: RTF Text. Tukaj je uporabljen komplet javax.swing.text.rtf.RTFEditorkit, ki bo zagotovil omejeno podporo formatu obogatenega besedila.

Konstruktorji JEditorPane

Spodaj so konstruktorji JEditorPane:

  1. JEditorPane (): Ta vrsta konstruktorja bo preprosto ustvarila nov JEditorPane.
  2. JEditorPane (string string): Ta vrsta konstruktorja bo ustvarila JEditorPane na podlagi niza v parametru, ki vsebuje specifikacije URL-ja.
  3. JEditorPane (začetna stran URL): Ta konstruktor bo ustvaril JEditorPane na podlagi določenega URL-ja v vhodnem parametru.
  4. JEditorPane (vrsta niza, niz strukturnega besedila): Ta konstruktor bo ustvaril JEditorPane, ki je bil inicializiran za besedilo, dano v parametru.

Nekaj ​​uporabnih metod razreda JEditoPane

Sledi metoda:

  1. void setText (String text): Ta metoda nastavi besedilo komponente z navedenim besedilom, vnesenim v vhodu, ki naj bi bilo v isti vrsti vsebine kot v urejevalniku.
  2. Razveljavi getText (): Ta metoda bo vrnila besedilo komponente znotraj določene vrste vsebine urejevalnika.
  3. Neveljavna setPage (URL strani): Ta metoda sproži JEditorPane, da prikaže določen URL kot trenutno stran.
  4. Void setContentType (vrsta niza): ta metoda se uporablja za določanje vrste vsebine, ki jo ureja urejevalnik.
  5. Razveljavi addHyperlinkListener (poslušalec HyperlinkListener): Ta metoda bo komponenti dodala poslušalca hiperpovezave, ki bo pomagal obveščati, kadar kliknete ali izberete povezavo ali hiperpovezavo.

Primer razreda JEditorPane

Spodaj so primeri JEditorPane:

Tu v tem primeru bomo ustvarili bralnik spletnih strani z uporabo JEditorPane v javi. Prav tako ga ne moremo obravnavati kot spletni brskalnik, saj JEditorPane lahko uporablja samo za prikazovanje HTML vsebin in ne more prikazati nobene CSS ali katere koli druge vsebinske vsebine, vendar je do nekaterih spletnih strani z vsebino HTML mogoče dostopati s primerom, pa tudi mi odprite katero koli datoteko HTML, ki je bila shranjena v lokalnem računalniku.

Tu, da zgradimo pregledovalnik spletnih strani, bomo najprej ustvarili podokno urejevalnika, ki bo prikazal vsebino HTML, nato pa ustvaril JTextfield, ki bo uporabljen za zapolnitev URL-ja in JButton, ki se uporablja za iskanje po URL-ju v spletu. Dodajte dejanje poslušalcu gumba in hiperpovezave, ki se lahko uporablja za katero koli hiperpovezavo na strani HTML. Na koncu dodajte vse komponente na ploščo in ploščo na nabor velikosti okvirja in tudi spletno stran naredite kot samo za branje, tako da ni mogoče spremeniti nobenih sprememb s pomočjo metode setEditable kot napačne.

Koda:

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

Izhod:

Zaključek

Razred JEditorPane lahko uporabimo za prikaz običajne HTML, vsebine obogatenega besedila ali navadnega besedila z nekaj stajlinga. Razred JEditorPane nudi prednost pred JTextPanes za zagotavljanje besedilne komponente, saj razred JEditorPane omogoča konstruktorjem, da inicializirajo podokno urejevalnika iz URL-ja, medtem ko JTextPane nima takšnih izvajalcev.

Priporočeni članki

To je vodnik za JEditorPane. Tukaj razpravljamo o konstruktorjih, metodah in primerih v JEditorPane. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Uredniki Pythona
  2. JScrollPane v Javi
  3. JTextField v Javi
  4. Uvod v JPanel na Javi
  5. JFrame v Javi