Spec-Zone.ru › OpenJDK 21

Класс JEditorPane

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JEditorPane
Все реализованные интерфейсы:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable
Непосредственные известные подклассы:
JTextPane
@JavaBean(defaultProperty="UIClassID", description="A text component to edit various types of content.") public class JEditorPane extends JTextComponent
Компонент для редактирования различных типов содержимого. Информацию о том, как использовать области редактирования и примеры можно найти в Использование текстовых компонентов, разделе учебника Java.

Этот компонент использует реализации EditorKit для реализации своего поведения. Он эффективно преобразуется в соответствующий редактор текста для типа содержимого, которое ему передается. Тип содержимого, к которому привязан редактор в любой момент времени, определяется установленным в данный момент EditorKit. Если содержимое задано как новая ссылка на URL, его тип используется для определения EditorKit который должен использоваться для загрузки содержимого.

По умолчанию известны следующие типы содержимого:

text/plain
Простой текст, который является значением по умолчанию, если тип не распознается. Используемый набор инструментов в этом случае представляет собой расширение DefaultEditorKit, которое создаёт вид обернутого простого текста.
text/html
Текст HTML. Используемый набор инструментов в данном случае — класс javax.swing.text.html.HTMLEditorKit, обеспечивающий поддержку HTML 3.2.
text/rtf
Текст RTF. Используемый набор инструментов в данном случае — класс javax.swing.text.rtf.RTFEditorKit, обеспечивающий ограниченную поддержку формата Rich Text.

Существует несколько способов загрузки содержимого в этот компонент.

  1. Метод setText может использоваться для инициализации компонента из строки. В этом случае будет использоваться текущий EditorKit, а тип содержимого ожидается как соответствующего типа.
  2. Метод read может быть использован для инициализации компонента из Reader. Обратите внимание, что если тип содержимого является HTML, относительные ссылки (например, для изображений) не могут быть разрешены, если не используется тег <base> или свойство Base в HTMLDocument. В этом случае будет использоваться текущий EditorKit, а тип содержимого ожидается как соответствующего типа.
  3. Метод setPage может использоваться для инициализации компонента из URL. В этом случае тип содержимого будет определяться по URL, и зарегистрированный EditorKit для этого типа содержимого будет установлен.

Некоторые виды содержимого могут обеспечивать поддержку гиперссылок, генерируя события гиперссылок. HTML EditorKit будет генерировать события гиперссылок, если JEditorPane не редактируется (был вызван JEditorPane.setEditable(false);). Если в документе встроены HTML-фреймы, обычный ответ — изменение части текущего документа. Следующий фрагмент кода — возможная реализация обработчика событий гиперссылок, которая обрабатывает события HTML-фреймов особым образом и просто отображает любые другие активированные гиперссылки.


     class Hyperactive implements HyperlinkListener {
 
         public void hyperlinkUpdate(HyperlinkEvent e) {
             if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                 JEditorPane pane = (JEditorPane) e.getSource();
                 if (e instanceof HTMLFrameHyperlinkEvent) {
                     HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)e;
                     HTMLDocument doc = (HTMLDocument)pane.getDocument();
                     doc.processHTMLFrameHyperlinkEvent(evt);
                 } else {
                     try {
                         pane.setPage(e.getURL());
                     } catch (Throwable t) {
                         t.printStackTrace();
                     }
                 }
             }
         }
     }

 

Для получения информации о том, как настроить отображение text/html, см. W3C_LENGTH_UNITS и HONOR_DISPLAY_PROPERTIES

Информация, зависящая от культуры в некоторых документах, обрабатывается механизмом, называемым кодировкой символов. Кодировка символов — это однозначное отображение членов набора символов (букв, иероглифов, цифр, символов или управляющих функций) в конкретные числовые значения кода. Она представляет способ хранения файла. Примерами кодировок символов являются ISO-8859-1, ISO-8859-5, Shift-jis, Euc-jp и UTF-8. При передаче файла агенту пользователя (JEditorPane) он преобразуется в наборы символов документа (ISO-10646, псевдоним Unicode).

Существует несколько способов установить сопоставление кодировки символов с JEditorPane.

  1. Один способ — указать кодировку символов как параметр MIME-типа. Это будет установлено вызовом метода setContentType. Если содержимое загружается методом setPage, тип содержимого будет установлен в соответствии с указанием URL. Если файл загружается напрямую, ожидается, что тип содержимого будет установлен до загрузки.
  2. Кодировку символов также можно указать в самом документе. Для этого необходимо прочитать документ до определения желаемой кодировки символов. Для обработки этого ожидается, что операция EditorKit.read бросит ChangedCharSetException, которая будет перехвачена. Затем чтение перезапускается с новым ридером, который использует кодировку символов, указанную в ChangedCharSetException (являющейся IOException).
Новые строки
Обсуждение обработки новых строк см. в DefaultEditorKit.

Предупреждение: Swing не является потокобезопасным. Более подробную информацию см. в Политика потоков Swing.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной версией Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans добавлена в пакет java.beans. См. XMLEncoder.

С:
1.2

Краткое описание вложенных классов

Модификатор и тип Класс Описание
protected class  JEditorPane.AccessibleJEditorPane
Этот класс реализует поддержку доступности для класса JEditorPane.
protected class  JEditorPane.AccessibleJEditorPaneHTML
Этот класс предоставляет поддержку AccessibleHypertext, и используется в тех случаях, когда установленный в этом EditorKit JEditorPane является экземпляром HTMLEditorKit.
protected class  JEditorPane.JEditorPaneAccessibleHypertextSupport
Что возвращает AccessibleJEditorPaneHTML.getAccessibleText.

Вложенные классы/интерфейсы, объявленные в классе javax.swing.text.JTextComponent

JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding

Вложенные классы/интерфейсы, объявленные в классе javax.swing.JComponent

JComponent.AccessibleJComponent

Вложенные классы/интерфейсы, объявленные в классе java.awt.Container

Container.AccessibleAWTContainer

Вложенные классы/интерфейсы, объявленные в классе java.awt.Component

Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy

Краткое описание полей

Модификатор и тип Поле Описание
static final String HONOR_DISPLAY_PROPERTIES
Ключ для свойства клиента, указывающего, используются ли шрифт и цвет фона по умолчанию из компонента, если шрифт или цвет фона не указаны в стилизованном тексте.
static final String W3C_LENGTH_UNITS
Ключ для свойства клиента, указывающего, используются ли w3c-совместимые единицы измерения длины для отображения html.

Поля, объявленные в классе javax.swing.text.JTextComponent

DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY

Поля, объявленные в классе javax.swing.JComponent

listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW

Поля, объявленные в классе java.awt.Component

accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

Поля, объявленные в интерфейсе java.awt.image.ImageObserver

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

Краткое описание конструкторов

Конструктор Описание
JEditorPane()
Создаёт новый JEditorPane.
JEditorPane(String url)
Создаёт JEditorPane на основе строки, содержащей описание URL.
JEditorPane(String type, String text)
Создаёт JEditorPane, инициализированный заданным текстом.
JEditorPane(URL initialPage)
Создаёт JEditorPane на основе указанного URL для входных данных.

Краткое описание методов

Модификатор и тип Метод Описание
void addHyperlinkListener(HyperlinkListener listener)
Добавляет обработчик гиперссылок для уведомления о любых изменениях, например, при выборе и вводе ссылки.
protected EditorKit createDefaultEditorKit()
Создаёт стандартный набор инструментов редактора (PlainEditorKit) при первом создании компонента.
static EditorKit createEditorKitForContentType(String type)
Создаёт обработчик для заданного типа из стандартной базы данных наборов инструментов редактора.
void fireHyperlinkUpdate(HyperlinkEvent e)
Уведомляет всех слушателей, которые зарегистрировали интерес к уведомлению об этом типе события.
AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этим JEditorPane.
final String getContentType()
Получает тип содержимого, с которым в данный момент работает этот редактор.
EditorKit getEditorKit()
Получает текущий установленный набор инструментов для обработки содержимого.
static String getEditorKitClassNameForContentType(String type)
Возвращает текущее зарегистрированное имя класса EditorKit для типа type.
EditorKit getEditorKitForContentType(String type)
Получает набор инструментов редактора для использования с заданным типом содержимого.
HyperlinkListener[] getHyperlinkListeners()
Возвращает массив всех HyperLinkListener добавленных в этот JEditorPane с помощью addHyperlinkListener().
URL getPage()
Получает текущий отображаемый URL.
Dimension getPreferredSize()
Возвращает предпочтительный размер для JEditorPane.
boolean getScrollableTracksViewportHeight()
Возвращает true, если область просмотра всегда должна принудительно устанавливать высоту этого Scrollable в соответствии с высотой области просмотра.
boolean getScrollableTracksViewportWidth()
Возвращает true, если область просмотра всегда должна принудительно устанавливать ширину этого Scrollable в соответствии с шириной области просмотра.
protected InputStream getStream(URL page)
Получает поток для заданного URL, который вскоре будет загружен методом setPage.
String getText()
Возвращает текст, содержащийся в этом TextComponent в терминах типа содержимого этого редактора.
String getUIClassID()
Получает идентификатор класса для пользовательского интерфейса.
protected String paramString()
Возвращает строковое представление этого JEditorPane.
void read(InputStream in, Object desc)
Этот метод инициализируется из потока.
static void registerEditorKitForContentType(String type, String classname)
Устанавливает стандартные привязки type к classname.
static void registerEditorKitForContentType(String type, String classname, ClassLoader loader)
Устанавливает стандартные привязки type к classname.
void removeHyperlinkListener(HyperlinkListener listener)
Удаляет обработчик гиперссылок.
void replaceSelection(String content)
Заменяет текущее выделенное содержимое новым содержимым, представленным данной строкой.
void scrollToReference(String reference)
Прокручивает представление до заданной ссылки (т.е. значения, возвращаемого методом URL.getRef для отображаемого URL).
final void setContentType(String type)
Устанавливает тип содержимого, обрабатываемого этим редактором.
void setEditorKit(EditorKit kit)
Устанавливает текущий установленный набор инструментов для обработки содержимого.
void setEditorKitForContentType(String type, EditorKit k)
Непосредственно устанавливает набор инструментов редактора для использования с заданным типом.
void setPage(String url)
Устанавливает текущий отображаемый URL.
void setPage(URL page)
Устанавливает текущий отображаемый URL.
void setText(String t)
Устанавливает текст этого TextComponent на указанное содержимое, которое, как ожидается, находится в формате типа содержимого этого редактора.

Методы, объявленные в классе javax.swing.text.JTextComponent

addCaretListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDocument, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, viewToModel2D, write

Методы, объявленные в классе javax.swing.JComponent

addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update

Методы, объявленные в классе java.awt.Container

add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree

Методы, объявленные в классе java.awt.Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание полей

W3C_LENGTH_UNITS

public static final String W3C_LENGTH_UNITS
Ключ для свойства клиента, используемого для указания, применяются ли совместимые с W3C единицы длины для рендеринга HTML.

По умолчанию это отключено; для его включения установите свойство клиента property с этим именем в значение Boolean.TRUE.

С тех пор как:
1.5
См. также:
  • Значения константных полей

HONOR_DISPLAY_PROPERTIES

public static final String HONOR_DISPLAY_PROPERTIES
Ключ для свойства клиента, используемого для указания, используются ли по умолчанию шрифт и цвет фона из компонента, если шрифт или цвет фона не указаны в форматированном тексте.

Значение по умолчанию зависит от темы; для его включения установите свойство клиента property с этим именем в значение Boolean.TRUE.

С тех пор как:
1.5
См. также:
  • Значения константных полей

Подробное описание конструкторов

JEditorPane

public JEditorPane()
Создает новый JEditorPane. Модель документа установлена в null.

JEditorPane

public JEditorPane(URL initialPage) throws IOException
Создает JEditorPane на основе указанного URL-адреса для ввода.
Параметры:
initialPage - URL
Исключения:
IOException - если URL null или недоступен

JEditorPane

public JEditorPane(String url) throws IOException
Создает JEditorPane на основе строки, содержащей URL-спецификацию.
Параметры:
url - URL
Исключения:
IOException - если URL null или недоступен

JEditorPane

public JEditorPane(String type, String text)
Создает JEditorPane, инициализированный заданным текстом. Это удобный конструктор, вызывающий методы setContentType и setText.
Параметры:
type - тип MIME заданного текста
text - текст для инициализации; может быть null
Исключения:
NullPointerException - если параметр type null

Подробное описание методов

addHyperlinkListener

public void addHyperlinkListener(HyperlinkListener listener)
Добавляет прослушиватель гиперссылок для уведомлений о любых изменениях, например, при выборе и вводе ссылки.
Параметры:
listener - прослушиватель

removeHyperlinkListener

public void removeHyperlinkListener(HyperlinkListener listener)
Удаляет прослушиватель гиперссылок.
Параметры:
listener - прослушиватель

getHyperlinkListeners

@BeanProperty(bound=false) public HyperlinkListener[] getHyperlinkListeners()
Возвращает массив всех HyperLinkListener , добавленных в этот JEditorPane с помощью addHyperlinkListener().
Возвращает:
все добавленные HyperLinkListener или пустой массив, если прослушиватели не добавлены
С тех пор как:
1.4

fireHyperlinkUpdate

public void fireHyperlinkUpdate(HyperlinkEvent e)
Уведомляет всех прослушивателей, зарегистрированных для уведомлений об этом типе события. Обычно вызывается текущим установленным EditorKit , если текущим активен тип контента, поддерживающий гиперссылки, и произошла активность с ссылкой. Список прослушивателей обрабатывается в обратном порядке.
Параметры:
e - событие
См. также:
  • EventListenerList

setPage

@BeanProperty(expert=true, description="the URL used to set content") public void setPage(URL page) throws IOException
Устанавливает текущий URL, отображаемый в редакторе. Тип контента панели устанавливается, и если набор редакторов панели не null, создается новый документ по умолчанию, и URL читается в него. Если URL содержит ссылку на позицию, позиция будет прокручена с помощью метода scrollToReference. Если необходимый URL уже отображается, документ не будет перезагружен. Для принудительной перезагрузки документа необходимо очистить свойство описания потока документа. Следующий код демонстрирует, как это можно сделать:
   Document doc = jEditorPane.getDocument();
   doc.putProperty(Document.StreamDescriptionProperty, null);
 
Если необходимый URL не отображается, вызывается метод getStream, чтобы предоставить подклассам возможность управления предоставляемым потоком.

Это может загрузить либо синхронно, либо асинхронно, в зависимости от документа, возвращаемого EditorKit. Если Document является типа AbstractDocument и имеет значение, возвращаемое AbstractDocument.getAsynchronousLoadPriority, которое больше или равно нулю, страница будет загружена на отдельной нити с указанным приоритетом.

Если документ загружается синхронно, он заполняется потоком до установки в редактор с вызовом setDocument, который связан и сгенерирует событие изменения свойства. Если возникнет исключение IOException, частично загруженный документ будет отброшен, и ни события изменения документа, ни события изменения страницы не будут сгенерированы. Если документ успешно загружен и установлен, для него будет построено представление пользовательским интерфейсом, которое затем будет прокручено при необходимости, и затем будет сгенерировано событие изменения страницы.

Если документ загружается асинхронно, документ будет сразу установлен в редактор с вызовом setDocument, который сгенерирует событие изменения документа, а затем будет создана нить, которая начнет фактическое выполнение загрузки. В этом случае событие изменения страницы не будет сгенерировано вызовом этого метода непосредственно, а сгенерируется, когда нить, выполняющая загрузку, завершит работу. Оно также сгенерируется на потоке обработки событий. Так как вызывающая нить не может генерировать исключение IOException в случае ошибки в другой нити, событие изменения страницы сгенерируется, когда другая нить завершит работу, независимо от того, была ли загрузка успешной или нет.

Параметры:
page - URL страницы
Исключения:
IOException - для null или некорректной спецификации страницы, или исключения из потока чтения
См. также:
  • getPage()

read

public void read(InputStream in, Object desc) throws IOException
Этот метод инициализирует данные из потока. Если набор редакторов настроен как HTMLEditorKit, и параметр desc является HTMLDocument, тогда вызывается HTMLEditorKit для начала чтения. В противном случае вызывается метод суперкласса, который загружает модель как обычный текст.
Параметры:
in - поток для чтения
desc - объект, описывающий поток
Исключения:
IOException - как выбрасывается при использовании потока для инициализации
См. также:
  • JTextComponent.read(java.io.Reader, java.lang.Object)
  • JTextComponent.setDocument(javax.swing.text.Document)

getStream

protected InputStream getStream(URL page) throws IOException
Извлекает поток для данного URL, который собирается загрузить метод setPage. По умолчанию, это просто открывает URL и возвращает поток. Это можно переопределить для выполнения полезных действий, таких как извлечение потока из кэша, мониторинг прогресса потока и т. д.

Ожидается, что этот метод вызовет побочный эффект установления типа контента, а значит, установить соответствующий EditorKit для загрузки потока.

Если поток был подключением HTTP, перенаправления будут выполнены, и результирующий URL будет установлен как Document.StreamDescriptionProperty, чтобы относительные URL могли быть корректно разрешены.

Параметры:
page - URL страницы
Возвращает:
поток для URL, который собирается загрузить
Исключения:
IOException - если возникает проблема ввода-вывода

scrollToReference

public void scrollToReference(String reference)
Прокручивает представление до указанной ссылки (то есть значения, возвращаемого методом URL.getRef для отображаемого URL). По умолчанию этот метод знает только как найти ссылку в HTMLDocument. Реализация вызывает метод scrollRectToVisible для выполнения фактической прокрутки. Если прокрутка до ссылки нужна для типов документов, отличных от HTML, этот метод следует переопределить. Этот метод не будет иметь эффекта, если компонент не отображается.
Параметры:
reference - имя позиции для прокрутки

getPage

public URL getPage()
Получает текущий URL, отображаемый в редакторе. Если URL не был указан при создании документа, это вернет null, и относительные URL не будут разрешены.
Возвращает:
URL или null если нет

setPage

public void setPage(String url) throws IOException
Устанавливает текущий отображаемый URL.
Parameters:
url - URL для отображения
Throws:
IOException - для null или неверного URL

getUIClassID

@BeanProperty(bound=false) public String getUIClassID()
Получает идентификатор класса UI.
Overrides:
getUIClassID в классе JComponent
Returns:
строка "EditorPaneUI"
See Also:
  • JComponent.getUIClassID()
  • UIDefaults.getUI(javax.swing.JComponent)

createDefaultEditorKit

protected EditorKit createDefaultEditorKit()
Создаёт набор стандартных инструментов редактирования (PlainEditorKit) при первом создании компонента.
Returns:
набор инструментов редактирования

getEditorKit

public EditorKit getEditorKit()
Получает текущий установленный набор инструментов для обработки содержимого. createDefaultEditorKit вызывается для настройки значения по умолчанию, если необходимо.
Returns:
набор инструментов редактирования

getContentType

public final String getContentType()
Получает тип содержимого, с которым в данный момент работает редактор. Он определяется как тип, связанный с текущим установленным EditorKit.
Returns:
тип содержимого, null если набор инструментов редактирования не задан

setContentType

@BeanProperty(bound=false, description="the type of content") public final void setContentType(String type)
Устанавливает тип содержимого, обрабатываемого этим редактором. Вызывает getEditorKitForContentType, а затем setEditorKit, если набор инструментов редактирования может быть успешно найден. Это преимущественно вспомогательный метод, который можно использовать как альтернативу прямому вызову setEditorKit.

Если в спецификации типа содержимого указано определение кодовой таблицы символов, оно будет использоваться при загрузке входных потоков с помощью соответствующего EditorKit. Например, если тип задан как text/html; charset=EUC-JP, содержимое будет загружено с использованием EditorKit, зарегистрированного для text/html, и чтец, предоставленный EditorKit, для загрузки Unicode в документ, будет использовать кодировку EUC-JP для преобразования в Unicode. Если тип не распознан, содержимое будет загружено с использованием EditorKit, зарегистрированного для простого текста, text/plain.

Parameters:
type - тип MIME содержимого для поддержки редактирования
Throws:
NullPointerException - если параметр type имеет null значение
See Also:
  • getContentType()

setEditorKit

@BeanProperty(expert=true, description="the currently installed kit for handling content") public void setEditorKit(EditorKit kit)
Устанавливает текущий установленный набор инструментов для обработки содержимого. Это связанное свойство, которое устанавливает тип содержимого редактора. Любой старый набор инструментов сначала деинсталлируется, затем, если набор инструментов не null, новый набор инструментов устанавливается, и для него создаётся документ по умолчанию. Событие PropertyChange ("editorKit") всегда генерируется при вызове setEditorKit.

ПРИМЕЧАНИЕ: Это имеет побочный эффект изменения модели, так как EditorKit является источником моделирования конкретного типа содержимого. Этот метод вызовет setDocument от имени вызывающего, чтобы обеспечить целостность внутреннего состояния.

Parameters:
kit - желаемое поведение редактора
See Also:
  • getEditorKit()

getEditorKitForContentType

public EditorKit getEditorKitForContentType(String type)
Получает набор инструментов редактора, используемый для данного типа содержимого. Вызывается при запросе типа, не соответствующего текущему установленным типу. Если у компонента нет EditorKit , зарегистрированного для данного типа, он попытается создать EditorKit из реестра стандартных EditorKit. Если это не удастся, используется PlainEditorKit, предполагая, что все текстовые документы могут быть представлены в виде простого текста.

Этот метод может быть переопределен для использования другого типа реестра. Например, он может быть переопределен для использования Java Activation Framework.

Parameters:
type - тип содержимого
Returns:
набор инструментов редактора

setEditorKitForContentType

public void setEditorKitForContentType(String type, EditorKit k)
Прямо устанавливает набор инструментов редактора, используемый для данного типа. Реализация внешнего вида может использовать это в сочетании с createEditorKitForContentType для установки обработчиков типов содержимого с предпочтениями внешнего вида.
Parameters:
type - тип содержимого
k - набор инструментов редактора

replaceSelection

public void replaceSelection(String content)
Заменяет текущее выделенное содержимое новым содержимым, представленным заданной строкой. Если выделения нет, это эквивалентно вставке заданного текста. Если текст замены пустой (т. е. строка содержимого пустая или null) это эквивалентно удалению текущего выделения. Текст замены будет иметь атрибуты, в данный момент определённые для ввода. Если компонент не редактируется, издаётся звуковой сигнал, и метод возвращает значение.
Overrides:
replaceSelection в классе JTextComponent
Parameters:
content - содержимое, которым заменяется выделение. Это значение может быть null

createEditorKitForContentType

public static EditorKit createEditorKitForContentType(String type)
Создаёт обработчик для данного типа из стандартного реестра наборов инструментов редактора. Реестр создаётся при необходимости. Если зарегистрированный класс ещё не загружен, предпринимается попытка динамически загрузить прототип набора инструментов для данного типа. Если тип был зарегистрирован с ClassLoader, этот ClassLoader будет использован для загрузки прототипа. Если зарегистрирован ClassLoader не был, будет использован Class.forName.

После успешной загрузки экземпляра прототипа EditorKit, он клонируется и клон возвращается.

Parameters:
type - тип содержимого
Returns:
набор инструментов редактора или null если ничего не зарегистрировано для данного типа

registerEditorKitForContentType

public static void registerEditorKitForContentType(String type, String classname)
Устанавливает стандартные связи type с classname. Класс будет загружен динамически позднее, когда это будет необходимо, и его можно безопасно изменить до использования, чтобы избежать загрузки нежелательных классов. Прототип EditorKit будет загружен с помощью Class.forName при регистрации с помощью этого метода.
Parameters:
type - тип содержимого
classname - класс для загрузки позднее

registerEditorKitForContentType

public static void registerEditorKitForContentType(String type, String classname, ClassLoader loader)
Устанавливает стандартные связи type с classname. Класс будет загружен динамически позднее, когда это будет необходимо, используя заданный ClassLoader, и его можно безопасно изменить до использования, чтобы избежать загрузки нежелательных классов.
Parameters:
type - тип содержимого
classname - класс для загрузки позднее
loader - ClassLoader для загрузки имени

getEditorKitClassNameForContentType

public static String getEditorKitClassNameForContentType(String type)
Возвращает имя зарегистрированного класса EditorKit для типа type.
Parameters:
type - тип содержимого
Returns:
строку, содержащую имя класса EditorKit для type
Since:
1.3

getPreferredSize

public Dimension getPreferredSize()
Возвращает предпочтительный размер для JEditorPane. Предпочтительный размер для JEditorPane немного изменён по сравнению со стандартным размером родительского класса. Если размер области просмотра стал меньше минимального размера компонента, определение прокручиваемости для отслеживания ширины или высоты станет ложным. Стандартная компоновка области просмотра даст предпочтительный размер, а это нежелательно в случае отслеживания прокручиваемости. В этом случае предпочтительный размер изменяется на минимальный размер. Это позволяет, например, HTML-таблицам сжиматься до минимального размера, а затем выстраиваться в минимальном размере, отказываться от дальнейшего сжатия.
Overrides:
getPreferredSize в классе JComponent
Returns:
строку, содержащую предпочтительный размер
See Also:
  • JComponent.setPreferredSize(java.awt.Dimension)
  • ComponentUI

setText

@BeanProperty(bound=false, description="the text of this component") public void setText(String t)
Устанавливает текст этого TextComponent заданным содержимым, которое ожидается в формате типа содержимого этого редактора. Например, если тип установлен на text/html, строка должна быть указана в формате HTML.

Эта реализация удаляет содержимое текущего документа и заменяет его, анализируя заданную строку с использованием текущего EditorKit. Это обеспечивает семантику суперкласса, не изменяя модель, но поддерживая тип содержимого, который в настоящее время установлен в этом компоненте. Предполагается, что предыдущее содержимое относительно небольшое и что предыдущее содержимое не имеет побочных эффектов. Оба этих предположения могут быть нарушены и привести к нежелательным результатам. Чтобы этого избежать, создайте новый документ, getEditorKit().createDefaultDocument(), и замените существующий Document новым. Вы гарантируете, что предыдущее Document не будет иметь каких-либо остаточных состояний.

  1. Оставление существующей модели неизменным означает, что старый вид будет разрушен, а новый вид будет создан, где замена документа позволит избежать разрушения старого вида.
  2. Некоторые форматы (например, HTML) могут устанавливать в документе вещи, которые могут влиять на будущее содержимое. HTML может содержать встроенную информацию о стиле, которая неожиданно повлияет на последующее установленное содержимое.

Альтернативный способ загрузки этого компонента строкой — создать StringReader и вызвать метод read. В этом случае модель будет заменена после её инициализации содержимым строки.

Overrides:
setText в классе JTextComponent
Parameters:
t - новый текст для установки; если null, старый текст будет удалён
See Also:
  • getText()

getText

public String getText()
Возвращает текст, содержащийся в этом TextComponent в терминах типа содержимого этого редактора. Если при попытке извлечения текста возникает исключение, возвращается null. Это реализовано для вызова JTextComponent.write с StringWriter.
Overrides:
getText в классе JTextComponent
Returns:
текст
See Also:
  • setText(java.lang.String)

getScrollableTracksViewportWidth

@BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
Возвращает true, если viewport должен всегда принудительно устанавливать ширину этого Scrollable в соответствии с шириной viewport.
Specified by:
getScrollableTracksViewportWidth в интерфейсе Scrollable
Overrides:
getScrollableTracksViewportWidth в классе JTextComponent
Returns:
true, если viewport должен принудительно установить ширину Scrollables в соответствии со своей собственной, иначе false

getScrollableTracksViewportHeight

@BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
Возвращает true, если viewport должен всегда принудительно устанавливать высоту этого Scrollable в соответствии с высотой viewport.
Specified by:
getScrollableTracksViewportHeight в интерфейсе Scrollable
Overrides:
getScrollableTracksViewportHeight в классе JTextComponent
Returns:
true, если viewport должен принудительно установить высоту Scrollable в соответствии со своей собственной, иначе false

paramString

protected String paramString()
Возвращает строковое представление этого JEditorPane. Этот метод предназначен только для отладки, и содержимое и формат возвращаемой строки могут различаться между реализациями. Возвращаемая строка может быть пустой, но не null.
Overrides:
paramString в классе JTextComponent
Returns:
строковое представление этого JEditorPane

getAccessibleContext

@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этим JEditorPane. Для редакторов панелей AccessibleContext принимает форму AccessibleJEditorPane. Новый AccessibleJEditorPane создается при необходимости.
Specified by:
getAccessibleContext в интерфейсе Accessible
Overrides:
getAccessibleContext в классе JTextComponent
Returns:
AccessibleJEditorPane, который служит AccessibleContext для этого JEditorPane

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/JEditorPane.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API