Introduktion til JEditorPane

JEditorPane-klassen i java bruges til at vise tekstkomponenter, der kan håndtere forskellige typer tekst med stil. Som standard kan det kun håndtere HTML, almindeligt og Rich Text Format (RTF). JEditorPane bruges primært til at vise HTML-indhold med begrænset grundlæggende HTML-tags.

For at have denne opførsel bruger denne komponent implementeringerne af EditorKit. Det smukke er, at det automatisk tilpasser sig den rigtige type teksteditor, uanset hvilken slags indhold det leveres. EditorKit, der i øjeblikket er installeret, bruges til at bestemme det indhold, som redaktøren er bundet til på et givet tidspunkt. Hvis f.eks. Indholdet af en komponent er indstillet til en ny URL, bruges dens type til at bestemme EditorKit, der skal forhåndsinstalleres for at indlæse indholdet.

Syntaks:

public class JEditorPane extends JTextComponent

Som standard er denne klasse forudkonfigureret til følgende tre indholdstyper:

  • tekst / almindelig: Almindelig tekst, som er standardtypen, når indholdet ikke genkendes. Sættet, der er brugt herover, er en udvidelse af DefaultEditorKit, der producerer en indpakket almindelig tekstvisning.
  • tekst / HTML: HTML-tekst. Sættet der bruges herover er klasse javax.swing.text.html.HTMLEditorkit, som giver support indtil HTML (ver. 3.2).
  • tekst / RTF: RTF-tekst. Sættet, der er brugt herover, er klasse javax.swing.text.rtf.RTFEditorkit, som vil give begrænset support Rich Text Format.

Konstruktører af JEditorPane

Nedenfor er konstruktørerne af JEditorPane:

  1. JEditorPane (): Denne type konstruktør opretter blot en ny JEditorPane.
  2. JEditorPane (String URL): Denne type konstruktør opretter en JEditorPane baseret på strengen i parameteren, der indeholder URL-specifikationerne.
  3. JEditorPane (URL-startside): Denne konstruktør opretter JEditorPane baseret på den specificerede URL i inputparameteren.
  4. JEditorPane (strengtype, strengtekst): Denne konstruktør opretter en JEditorPane, der er initialiseret til teksten, der er givet inden for parameteren.

Nogle nyttige metoder til JEditoPane Class

Følgende er følgende metode:

  1. void setText (strengtekst): Denne metode indstiller teksten til komponenten med den specificerede tekst, der er angivet i input, hvilket forventes at være i den samme indholdstype som for redaktøren.
  2. Void getText (): Denne metode returnerer teksten til komponenten inden for den angivne indholdstype for editoren.
  3. Void setPage (URL-side): Denne metode udløser JEditorPane til at vise den specificerede URL som den aktuelle side.
  4. Void setContentType (String type): Denne metode bruges til at indstille den type indhold, som redaktøren kan håndtere.
  5. Void addHyperlinkListener (HyperlinkListener lytter): Denne metode tilføjer en hyperlinklytter til komponenten, som vil hjælpe med at underrette, når der klikkes eller vælges et link eller hyperlink.

Eksempel på JEditorPane Class

Nedenfor er eksemplerne på JEditorPane:

Her i dette eksempel vil vi oprette en webside-læser ved hjælp af JEditorPane i java. Vi kan ikke også betragte det som en webbrowser, da JEditorPane kun kan bruges til at vise HTML-indhold, og det kan ikke vise noget CSS eller andet stylingindhold, men stadig kan nogle websider med HTML-indhold fås via eksemplet så godt som vi også åbn enhver HTML-fil, der er gemt på den lokale pc.

Herover for at opbygge en webside-fremviser vil vi først oprette en redigeringsrude til at vise HTML-indholdet og derefter oprette et JTextfield, der bruges til at udfylde URL'en og en JButton, der bruges til at søge URL'en på nettet. Føj en handling til knappen og hyperlinklytter, som kan bruges til ethvert hyperlink på HTML-siden. I sidste ende skal du tilføje alle komponenter til panelet og panelet til rammesættet på rammestørrelsen og også lave websiden som skrivebeskyttet, så der ikke kan foretages ændringer ved hjælp af 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();
)
)
)

Produktion:

Konklusion

JEditorPane-klassen kan bruges til at vise normalt HTML, Rich Text Format-indhold eller almindelig tekst med lidt styling. JEditorPane-klassen giver en kant over JTextPanes til levering af tekstkomponent, da JEditorPane-klassen giver dig konstruktører til at initialisere redigeringsruden i en URL, mens JTextPane ikke har sådanne entreprenører.

Anbefalede artikler

Dette er en guide til JEditorPane. Her diskuterer vi konstruktører, metoder og eksempler i JEditorPane. Du kan også gennemgå vores andre relaterede artikler for at lære mere -

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

Kategori: