Johdanto JEditorPaneen

Java-JEditorPane-luokkaa käytetään tekstikomponenttien näyttämiseen, jotka pystyvät käsittelemään erityyppisiä tekstejä tyylillä. Oletuksena se pystyy käsittelemään vain HTML, tavallista ja Rich Text Format (RTF) -muotoa. JEditorPane-sovellusta käytetään ensisijaisesti HTML-sisällön näyttämiseen rajoitetuilla HTML-tunnisteilla.

Tämän käytön saamiseksi tämä komponentti käyttää EditorKitin toteutuksia. Kauneus on se, että se mukautuu automaattisesti oikean tyyppiseen tekstieditoriin sen mukaan, minkä tyyppistä sisältöä se tarjotaan. Tällä hetkellä asennettua EditorKit-ohjelmaa käytetään määrittämään sisältö, johon editori on sidottu milloin tahansa. Esimerkiksi, jos komponentin sisältö on asetettu uudelle URL-osoitteelle, sen tyyppiä käytetään määrittämään EditorKit, joka olisi esiasennettava sisällön lataamiseksi.

Syntaksi:

public class JEditorPane extends JTextComponent

Oletuksena tämä luokka on esiasetettu seuraaviin kolmeen sisältötyyppiin:

  • teksti / tavallinen: tavallinen teksti, joka on oletustyyppi, kun sisältöä ei tunnisteta. Tässä käytetty sarja on DefaultEditorKit-laajennus, joka tuottaa käärityn selkeän tekstinäkymän.
  • teksti / HTML: HTML-teksti. Täällä käytetty sarja on javax.swing.text.html.HTMLEditorkit, joka tukee HTML-muotoon asti (ver. 3.2).
  • teksti / RTF: RTF-teksti. Täällä käytetty sarja on javax.swing.text.rtf.RTFEditorkit, joka tarjoaa rajoitetun tuen Rich Text Format -tuelle.

JEditorPanen rakentajat

Alla on JEditorPanen rakentajat:

  1. JEditorPane (): Tämäntyyppinen rakentaja luo yksinkertaisesti uuden JEditorPane.
  2. JEditorPane (merkkijono URL): Tämäntyyppinen rakentaja luo JEditorPane URL-määrityksiä sisältävän parametrin merkkijonoon perustuen.
  3. JEditorPane (URL: n aloitussivu): Tämä rakentaja luo JEditorPane: n tuloparametrissa määritetyn URL-osoitteen perusteella.
  4. JEditorPane (merkkijonotyyppi, merkkiteksti): Tämä rakentaja luo JEditorPane, joka on alustettu parametrissa annetulle tekstille.

JEditoPane-luokan hyödyllisiä menetelmiä

Seuraava menetelmä on seuraava:

  1. void setText (merkkijono teksti): Tämä menetelmä asettaa komponentin tekstin määritellyllä tekstillä, joka annetaan syötteessä, jonka odotetaan olevan samassa sisältötyypissä kuin editori.
  2. Void getText (): Tämä menetelmä palauttaa komponentin tekstin editorin määritetyn sisältötyypin sisällä.
  3. Void setPage (URL-sivu): Tämä menetelmä laukaisee JEditorPane: n näyttämään määritetty URL nykyisenä sivuna.
  4. Void setContentType (merkkijonon tyyppi): Tätä menetelmää käytetään asettamaan sisältötyyppi, jota editori voi käsitellä.
  5. Void addHyperlinkListener (HyperlinkListener listener): Tämä menetelmä lisää hyperlinkin kuuntelijan komponenttiin, joka auttaa ilmoittamaan aina, kun linkkiä tai hyperlinkkiä napsautetaan tai valitaan.

Esimerkki JEditorPane-luokasta

Alla on esimerkkejä JEditorPane:

Tässä esimerkissä luomme verkkosivunlukijan käyttämällä Java-sovelluksen JEditorPane-sovellusta. Emme voi myöskään pitää sitä selaimena, koska JEditorPane voi käyttää vain HTML-sisällön näyttämistä ja se ei voi näyttää mitään CSS: ää tai muuta tyylityssisältöä, mutta silti joihinkin verkkosivustoihin, joissa on HTML-sisältöä, voidaan päästä esimerkin kautta, samoin kuin mekin avaa kaikki paikalliselle tietokoneelle tallennetut HTML-tiedostot.

Täällä Web-sivun katseluohjelman luomiseksi luomme ensin muokkausruudun HTML-sisällön näyttämiseksi ja sitten luodaan JTextfield, jota käytetään URL-osoitteen täyttämiseen, ja JButton, jota käytetään URL-osoitteen hakuun verkossa. Lisää toiminto painikkeeseen ja hyperlinkin kuuntelijaan, jota voidaan käyttää mihin tahansa HTML-sivun hyperlinktiin. Lisää lopulta kaikki komponentit paneeliin ja paneeliin kehyssettiin kehyksen koon mukaan ja tee verkkosivu myös vain luku -tyyppiseksi, jotta muutoksia ei voida tehdä käyttämällä setEditable-menetelmää väärin.

Koodi:

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

lähtö:

johtopäätös

JEditorPane-luokkaa voidaan käyttää normaalin HTML-, Rich Text Format -sisällön tai tavallisen tekstin näyttämiseen hieman muotoilulla. JEditorPane-luokka tarjoaa reunan JTextPanes -sovellukselle tekstikomponentin tarjoamiseksi, koska JEditorPane-luokka antaa sinulle rakentajien alustaa toimittajaruudun URL-osoitteen, kun taas JTextPane-ohjelmalla ei ole sellaisia ​​urakoitsijoita.

Suositellut artikkelit

Tämä on opas JEditorPaneen. Tässä keskustellaan JEditorPane-sovelluksen rakentajista, menetelmistä ja esimerkkeistä. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja -

  1. Python-toimittajat
  2. JScrollPane Java
  3. JTextField Java
  4. Johdanto JPaneliin Java
  5. JFrame Java