Introduktion till JEditorPane

JEditorPane klass i java används för att visa textkomponenter som kan hantera olika typer av text med stil. Som standard kan den endast hantera HTML, vanlig och Rich Text Format (RTF). JEditorPane används främst för att visa HTML-innehåll med begränsade grundläggande HTML-taggar.

För att få detta beteende använder denna komponent implementeringarna av EditorKit. Skönheten är att den automatiskt anpassar sig till den rätta typen av textredigerare för vilken typ av innehåll den tillhandahålls. EditorKit som för närvarande installeras används för att bestämma innehållet som redaktören är bunden till vid en viss tidpunkt. Om till exempel innehållet i en komponent är inställt på en ny URL används dess typ för att bestämma EditorKit som ska förinstalleras för att ladda innehållet.

Syntax:

public class JEditorPane extends JTextComponent

Som standard är denna klass förkonfigurerad till följande tre typer av innehåll:

  • text / vanlig: Vanlig text, som är standardtypen när innehållet inte känns igen. Det här kit som används här är en förlängning av DefaultEditorKit som ger en inslagad vanlig textvy.
  • text / HTML: HTML-text. Satsen som används här är klass javax.swing.text.html.HTMLEditorkit som kommer att ge support till HTML (ver. 3.2).
  • text / RTF: RTF Text. Satsen som används här är klass javax.swing.text.rtf.RTFEditorkit som kommer att ge begränsat stöd Rich Text Format.

Konstruktörer av JEditorPane

Nedan är konstruktörerna för JEditorPane:

  1. JEditorPane (): Denna typ av konstruktör skapar helt enkelt en ny JEditorPane.
  2. JEditorPane (String URL): Denna typ av konstruktör skapar ett JEditorPane baserat på strängen i parametern som innehåller URL-specifikationerna.
  3. JEditorPane (URL-startsida): Den här konstruktören skapar JEditorPane baserat på den angivna URL-adressen i inmatningsparametern.
  4. JEditorPane (Stringtyp, Stringtext): Den här konstruktören skapar ett JEditorPane som har initialiserats till den text som anges i parametern.

Några användbara metoder för JEditoPane Class

Följande är metoden enligt följande:

  1. void setText (String text): Denna metod ställer in texten för komponenten med den angivna texten som ges i ingången, som förväntas vara i samma innehållstyp som för redigeraren.
  2. Void getText (): Den här metoden returnerar texten till komponenten inom den angivna innehållstypen för redigeraren.
  3. Void setPage (URL-sida): Den här metoden utlöser JEditorPane för att visa den angivna URL-adressen som den aktuella sidan.
  4. Void setContentType (String type): Den här metoden används för att ställa in vilken typ av innehåll redaktören kan hantera.
  5. Void addHyperlinkListener (HyperlinkListener lyssnaren): Den här metoden lägger till en hyperlänks lyssnar till komponenten som hjälper till att meddela varje gång en länk eller hyperlänk klickas eller väljs.

Exempel på JEditorPane Class

Nedan är exemplen på JEditorPane:

Här i det här exemplet kommer vi att skapa en webbläsare med hjälp av JEditorPane i java. Vi kan inte heller betrakta det som en webbläsare eftersom JEditorPane bara kan använda för att visa HTML-innehåll och det kan inte visa något CSS eller något annat stylinginnehåll, men fortfarande kan vissa webbsidor med HTML-innehåll nås via exemplet liksom vi också öppna alla HTML-filer som sparats på den lokala datorn.

Här borta för att bygga en webbsidesvisare, skapar vi först en redigeringsfönster för att visa HTML-innehållet och sedan skapa ett JTextfält som kommer att användas för att fylla URL: en och en JButton som används för att söka i webbadressen på webben. Lägg till en åtgärd på knappen och hyperlänks lyssnaren som kan användas för vilken hyperlänk som helst på HTML-sidan. Till slut lägger du till alla komponenter till panelen och panelen till ramuppsättningen på ramens storlek och gör också webbsidan som skrivskyddad så att inga ändringar kan göras med metoden setEditable som False.

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

Produktion:

Slutsats

JEditorPane-klassen kan användas för att visa normalt HTML, innehåll med rik textformat eller vanlig text med lite styling. JEditorPane-klassen ger en kant över JTextPanes för att tillhandahålla textkomponent eftersom JEditorPane-klassen ger dig konstruktörer att initiera redigeringsfönstret från en URL medan JTextPane inte har sådana entreprenörer.

Rekommenderade artiklar

Detta är en guide till JEditorPane. Här diskuterar vi konstruktörer, metoder och exempel i JEditorPane. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer -

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

Kategori: