Introduksjon til JEditorPane

JEditorPane-klassen i java brukes til å vise tekstkomponenter som kan håndtere forskjellige typer tekst med stil. Som standard kan den bare håndtere HTML, vanlig og RTF (Rich Text Format). JEditorPane brukes først og fremst til å vise HTML-innhold med begrensede grunnleggende HTML-koder.

For å ha denne oppførselen bruker denne komponenten implementeringene av EditorKit. Det fine er at den automatisk tilpasser seg den riktige typen tekstredigerer for hvilken type innhold den er gitt. EditorKit som for øyeblikket er installert, brukes til å bestemme innholdet som redaktøren er bundet til til enhver tid. Hvis for eksempel innholdet i en komponent er satt til en ny URL, brukes typen til å bestemme EditorKit som skal forhåndsinstalleres for å laste innholdet.

syntaks:

public class JEditorPane extends JTextComponent

Som standard er denne klassen forhåndsinnstilt til følgende tre typer innhold:

  • tekst / vanlig: Vanlig tekst, som er standardtypen når innholdet ikke gjenkjennes. Settet som er brukt her over er en utvidelse av DefaultEditorKit som vil produsere en innpakket ren tekstvisning.
  • tekst / HTML: HTML-tekst. Settet som brukes her er klasse javax.swing.text.html.HTMLEditorkit som vil gi støtte til HTML (ver. 3.2).
  • tekst / RTF: RTF Tekst. Settet som brukes her er klasse javax.swing.text.rtf.RTFEditorkit som vil gi begrenset støtte Rich Text Format.

Konstruktører av JEditorPane

Nedenfor er konstruktørene av JEditorPane:

  1. JEditorPane (): Denne typen konstruktører vil ganske enkelt opprette en ny JEditorPane.
  2. JEditorPane (String URL): Denne typen konstruktører vil opprette en JEditorPane basert på strengen i parameteren som inneholder URL-spesifikasjonene.
  3. JEditorPane (URL-side): Denne konstruktøren oppretter JEditorPane basert på den spesifiserte URL-en i inngangsparameteren.
  4. JEditorPane (strengtype, strengtekst): Denne konstruktøren vil opprette en JEditorPane som er initialisert til teksten gitt i parameteren.

Noen nyttige metoder for JEditoPane Class

Følgende er metoden som følger:

  1. void setText (strengtekst): Denne metoden vil sette teksten til komponenten med den spesifiserte teksten gitt i inngangen, som forventes å være i samme innholdstype som for redigereren.
  2. Void getText (): Denne metoden vil returnere teksten til komponenten innenfor den spesifiserte innholdstypen til redigereren.
  3. Void setPage (URL-side): Denne metoden vil utløse JEditorPane for å vise den spesifiserte URL-en som den gjeldende siden.
  4. Void setContentType (String type): Denne metoden brukes til å angi hvilken type innhold redaktøren kan håndtere.
  5. Void addHyperlinkListener (HyperlinkListener lytter): Denne metoden vil legge til en hyperkoblingslytter til komponenten som vil hjelpe til med å varsle når en link eller hyperkobling blir klikket eller valgt.

Eksempel på JEditorPane Class

Nedenfor er eksemplene på JEditorPane:

Her i dette eksemplet vil vi opprette en websideleser som bruker JEditorPane i java. Vi kan heller ikke betrakte det som en nettleser siden JEditorPane bare kan bruke til å vise HTML-innhold, og det kan ikke vise noe CSS eller annet stylinginnhold, men fremdeles kan noen websider med HTML-innhold nås via eksemplet, så vel som vi også Åpne alle HTML-filer som er lagret på den lokale PC-en.

Over her for å bygge en webside-visning, vil vi først opprette en redigeringsrute for å vise HTML-innholdet og deretter opprette et JTextfield som skal brukes til å fylle URL-en og en JButton som brukes til å søke i URL-en på nettet. Legg til en handling på knappen og hyperkoblingslytteren som kan brukes til hvilken som helst hyperkobling på HTML-siden. Til slutt legger du alle komponentene til panelet og panelet til rammesettet på størrelse med rammen, og lag også websiden som skrivebeskyttet slik at ingen endringer kan gjøres ved å bruke metoden SetEditable som False.

Kode:

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

Produksjon:

Konklusjon

JEditorPane-klassen kan brukes til å vise normalt HTML, rik tekstformatinnhold eller vanlig tekst med litt styling. JEditorPane-klassen gir en forkant over JTextPanes for å gi tekstkomponent ettersom JEditorPane-klassen gir deg konstruktører til å initialisere redigeringsruten fra en URL, mens JTextPane ikke har slike entreprenører.

Anbefalte artikler

Dette er en guide til JEditorPane. Her diskuterer vi konstruktører, metoder og eksempler i JEditorPane. Du kan også gå gjennom andre relaterte artikler for å lære mer -

  1. Python Editors
  2. JScrollPane i Java
  3. JTextField i Java
  4. Introduksjon til JPanel i Java
  5. JFrame i Java