Sissejuhatus JEditorPane'i

Klassis JEditorPane javas kasutatakse tekstikomponentide kuvamist, mis saavad eri tüüpi teksti stiiliga hakkama. Vaikimisi saab see käsitleda ainult HTML-i, tavalist ja rikkaliku teksti vormingut (RTF). JEditorPane kasutatakse peamiselt HTML-i sisu kuvamiseks piiratud HTML-põhiste siltidega.

Sellise käitumise jaoks kasutab see komponent EditorKiti rakendusi. Ilu on selles, et see kohandub automaatselt vastavalt sellele, millist sisu see pakutakse. Praegu installitud EditorKiti kasutatakse sisu määramiseks, millega toimetaja igal ajal seob. Näiteks kui komponendi sisu on seatud uuele URL-ile, siis selle tüübi järgi määratakse EditorKit, mis tuleks sisu laadimiseks eelinstallida.

Süntaks:

public class JEditorPane extends JTextComponent

Vaikimisi on see klass eelkonfigureeritud järgmise kolme sisutüübi jaoks:

  • tekst / tavaline: tavaline tekst, mis on vaiketüüp, kui sisu ei tuvastata. Siin kasutatud komplekt on DefaultEditorKiti laiendus, mis loob pakitud lihttekstivaate.
  • tekst / HTML: HTML-tekst. Siin kasutatav komplekt on klass javax.swing.text.html.HTMLEditorkit, mis toetab HTML-i (ver. 3.2).
  • tekst / RTF: RTF tekst. Siin kasutatav komplekt on klass javax.swing.text.rtf.RTFEditorkit, mis pakub piiratud tuge Rich Text Format.

JEditorPane'i konstruktorid

Allpool on JEditorPane'i konstruktorid:

  1. JEditorPane (): Seda tüüpi konstruktor loob lihtsalt uue JEditorPane.
  2. JEditorPane (stringi URL): seda tüüpi konstruktor loob JEditorPane'i URL-i spetsifikatsioone sisaldava parameetri stringi põhjal.
  3. JEditorPane (URL-i algusleht): see konstruktor loob JEditorPane-i sisendparameetris määratud URL-i põhjal.
  4. JEditorPane (stringi tüüp, stringi tekst): see konstruktor loob JEditorPane'i, mis on initsialiseeritud parameetris antud teksti jaoks.

JEditoPane klassi mõned kasulikud meetodid

Järgnevalt on toodud järgmine meetod:

  1. void setText (stringi tekst): see meetod seab komponendi teksti sisendis määratud tekstiga, mis peaks eeldatavasti olema sama sisutüübiga kui redaktor.
  2. Void getText (): See meetod tagastab komponendi teksti redaktori määratud sisutüübis.
  3. Void setPage (URL-i leht): see meetod käivitab JEditorPane'i, et näidata määratud URL aktiivse lehena.
  4. Void setContentType (stringi tüüp): seda meetodit kasutatakse sisutüübi määramiseks, millega toimetaja saab hakkama.
  5. Void addHyperlinkListener (HyperlinkListeneri kuulaja): see meetod lisab komponendile hüperlingi kuulaja, mis aitab teavitada igast lingi või hüperlingi klõpsamisest või valimisest.

Näide JEditorPane klassist

Allpool on toodud JEditorPane näited:

Selles näites loome veebilehe lugeja, kasutades Java-rakenduses JEditorPane. Me ei saa seda pidada ka veebibrauseriks, kuna JEditorPane saab kasutada ainult HTML-i sisu kuvamiseks ja see ei saa näidata ühtegi CSS-i ega muud stiilisisu, kuid siiski on mõnele HTML-sisuga veebilehele juurde pääseda ka näite kaudu, nagu ka meie avage mis tahes kohalikku arvutisse salvestatud HTML-fail.

Veebilehevaataja loomiseks loome siin esmalt HTML-i sisu kuvamiseks redaktoripaani, seejärel loome JTextfieldi, mida kasutatakse URL-i täitmiseks, ja JButtoni, mida kasutatakse veebis URL-i otsimiseks. Lisage nupule ja hüperlingi kuulajale toiming, mida saab kasutada mis tahes hüperlingi jaoks HTML-lehel. Lõpuks lisage kõik komponendid paneelile ja paneel raami komplektile kaadri suurusega ja muutke ka veebileht kirjutuskaitstud, nii et setEditable meetodi valena ei saaks muudatusi teha.

Kood:

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

Väljund:

Järeldus

JEditorPane'i klassi saab kasutada tavalise HTML-i, rikkaliku teksti vormingus sisu või tavalise teksti kuvamiseks natuke stiiliga. JEditorPane klass pakub tekstikomponendi pakkumiseks eelise JTextPanes ees, kuna JEditorPane klass pakub konstruktoritele redaktoripaani initsialiseerimiseks URL-i, samas kui JTextPane'il selliseid töövõtjaid pole.

Soovitatavad artiklid

See on JEditorPane'i juhend. Siin käsitleme JEditorPane'is konstruktoreid, meetodeid ja näiteid. Lisateavet leiate ka meie muudest seotud artiklitest -

  1. Pythoni toimetajad
  2. JScrollPane Java
  3. JTextField Java
  4. JPaneli tutvustus Java-s
  5. JFrame Java

Kategooria: