|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.text.JTextComponent
public abstract class JTextComponent
JTextComponent
是 swing 文本组件的基类。它会试着与 java.awt.TextComponent
类兼容,并且在此理应如此。还提供其他额外灵活性(不包括可插入 UI 和 bean 支持)服务。有关如何使用此类提供的功能的信息,请参阅 The Java Tutorial 中的 General Rules for Using Text Components 一节。
CaretListener
接口的实现。如果尚未设置定制插入符,则该 UI 将安装默认插入符。DefaultCaret
尝试使自己可见,这将导致 JScrollPane
内的文本组件发生滚动。DefaultCaret.setUpdatePolicy(int)
方法可以更改默认的插入符行为。
Action
接口使用 TextAction
实现来表示。文本组件支持的命令集合可以使用 getActions()
方法查找。这些操作可以绑定到由按键等触发的键事件上。
Keymap
让应用程序将击键绑定到操作上。为了允许 keymap 在整个多文本组件上共享,它们可以使用扩展 TextAction
的操作。TextAction
可以确定哪个 JTextComponent
最近有或以前有过焦点,并因此成为该操作的执行者(在此情况下,发送到该操作的 ActionEvent
不包含作为其源的目标文本组件)。
input method framework 让文本组件与输入法交互,分隔预处理事件的软件组件,来让用户使用非常有限的几个键盘键输入成千上万个不同的字符。JTextComponent
是该框架的一个活动客户端,因此它可实现与输入法交互的首选用户界面。因此,有些键事件因为受输入法处理而无法到达文本组件,而有些文本输入不是作为键事件而是作为在 InputMethodEvent
内的提交文本到达文本组件的。完整的文本输入是 keyTyped
键事件中的字符和输入法事件中的提交文本的结合。
AWT 侦听器模型让应用程序将事件侦听器附加到组件,以便将事件绑定到操作。Swing 鼓励使用 keymap 替代侦听器,但要通过使用它为侦听器提供获得事件的机会来维护与侦听器的兼容性。
键盘事件和输入法事件通过以下几个阶段进行处理,每个阶段都能使用该事件:
Stage |
KeyEvent |
InputMethodEvent |
---|---|---|
1. | 输入法 | (在此处生成) |
2. | 焦点管理器 | |
3. | 注册的键侦听器 | 注册的输入法侦听器 |
4. | 在 JTextComponent 中的输入法处理 | |
5. | 使用当前 keymap 进行 keymap 处理 | |
6. | 在 JComponent 中进行键盘处理(如加速键、组件导航等) |
要维护与侦听键事件但不知道输入法事件的应用程序的兼容性,在阶段 4 中的输入法处理会提供不处理输入法事件的组件的兼容性模式。对于这些组件,可将提交文本转换为 keyTyped 键事件,并在阶段 3 开始的键事件管线中进行处理,而不是在输入法事件管线中处理。
默认情况下,组件将创建一个作为默认 keymap 由所有 JTextComponent 实例共享的 keymap(名为 DEFAULT_KEYMAP)。通常,外观实现将安装一个不同的 keymap,以便把另一个 keymap 中找不到的绑定解析为默认 keymap。该绑定最少包括:
该模型由 Document
接口定义。此模型应提供灵活的文本存储机制,以在编辑过程中跟踪更改,并且可以扩展为更复杂的模型。该模型接口旨在捕获 SGML(用于表示多种内容的系统)提供的表达式功能。每次修改文档都会以 DocumentEvent
形式将更改的详细信息通知给所有观察者,允许视图与模型保持最新。将此事件发送给实现了 DocumentListener
接口且注册为需要正在接受观察的模型的观察者。
modelToView(int)
和 viewToModel(java.awt.Point)
。
UndoableEdit
记录以提供撤消/恢复支持。该支持由 Document 模型提供,该模型允许用户附加 UndoableEditListener 实现。
AbstractDocument
的文档会描述提供的假定保护。异步调用的安全方法标记为注释。
print
方法进行基本文档打印。如果需要更高级的打印,请使用 getPrintable(java.text.MessageFormat, java.text.MessageFormat)
方法。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
Document
,
DocumentEvent
,
DocumentListener
,
Caret
,
CaretEvent
,
CaretListener
,
TextUI
,
View
,
ViewFactory
嵌套类摘要 | |
---|---|
class |
JTextComponent.AccessibleJTextComponent
此类实现 JTextComponent 类的可访问性支持。 |
static class |
JTextComponent.DropLocation
表示 JTextComponent 的放置位置 (drop location)。 |
static class |
JTextComponent.KeyBinding
用于创建键绑定的绑定记录。 |
从类 javax.swing.JComponent 继承的嵌套类/接口 |
---|
JComponent.AccessibleJComponent |
从类 java.awt.Container 继承的嵌套类/接口 |
---|
Container.AccessibleAWTContainer |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 | |
---|---|
static String |
DEFAULT_KEYMAP
将由所有 JTextComponent 实例共享的默认 keymap,除非这些实例已有另一个 keymap 集合。 |
static String |
FOCUS_ACCELERATOR_KEY
焦点加速键的绑定 (bound) 属性名称。 |
从类 javax.swing.JComponent 继承的字段 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
JTextComponent()
创建一个新的 JTextComponent 。 |
方法摘要 | |
---|---|
void |
addCaretListener(CaretListener listener)
添加插入符侦听器,以便侦听任何插入符的更改通知。 |
void |
addInputMethodListener(InputMethodListener l)
添加指定的输入方法侦听器,以接收发自此组件的输入方法事件。 |
static Keymap |
addKeymap(String nm,
Keymap parent)
将一个新 keymap 添加到 keymap 层次结构。 |
void |
copy()
将关联文本模型中当前选定的范围传输到系统剪贴板,并在文本模型中保留内容。 |
void |
cut()
将关联文本模型中当前选定的范围传输到系统剪贴板,并从模型中移除内容。 |
protected void |
fireCaretUpdate(CaretEvent e)
通知所有已注册需要此事件类型的通知的侦听器。 |
AccessibleContext |
getAccessibleContext()
获取与此 JTextComponent 关联的 AccessibleContext 。 |
Action[] |
getActions()
获取编辑器的命令列表。 |
Caret |
getCaret()
获取允许在视图上进行面向文本导航的插入符。 |
Color |
getCaretColor()
获取用于呈现插入符的当前颜色。 |
CaretListener[] |
getCaretListeners()
返回在此文本组件上已注册的所有插入符侦听器的数组。 |
int |
getCaretPosition()
返回文本组件的文本插入符的位置。 |
Color |
getDisabledTextColor()
获取用于呈现禁用文本的当前颜色。 |
Document |
getDocument()
获取与编辑器关联的模型。 |
boolean |
getDragEnabled()
返回是否启用自动拖动处理。 |
JTextComponent.DropLocation |
getDropLocation()
返回在组件上进行 DnD 操作过程中此组件在视觉上指示为放置位置的位置;如果当前没有显示任何位置,则返回 null 。 |
DropMode |
getDropMode()
返回此组件的放置模式。 |
char |
getFocusAccelerator()
返回将导致接收文本组件获取焦点的加速键。 |
Highlighter |
getHighlighter()
获取负责进行高亮显示的对象。 |
InputMethodRequests |
getInputMethodRequests()
获取输入方法请求处理程序,该处理程序支持此组件输入方法发出的请求。 |
Keymap |
getKeymap()
获取当前在此文本组件中活动的 keymap。 |
static Keymap |
getKeymap(String nm)
获取以前添加到文档中的已命名 keymap。 |
Insets |
getMargin()
返回文本组件的边框和它的文本之间的空白。 |
NavigationFilter |
getNavigationFilter()
返回 NavigationFilter 。 |
Dimension |
getPreferredScrollableViewportSize()
返回视图组件视口的首选大小。 |
Printable |
getPrintable(MessageFormat headerFormat,
MessageFormat footerFormat)
返回一个 Printable ,用于打印此 JTextComponent 的内容。 |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
显示逻辑行或列的组件应计算滚动增量,它将根据方向的值完全公开一个行块或列块。 |
boolean |
getScrollableTracksViewportHeight()
如果视口总是强制此 Scrollable 的高度与视口高度匹配,则返回 true。 |
boolean |
getScrollableTracksViewportWidth()
如果视口总是强制此 Scrollable 的宽度与视口宽度匹配,则返回 true。 |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
显示逻辑行或列的组件应计算滚动增量,它将根据方向的值完全公开一个新的行或列。 |
String |
getSelectedText()
返回此 TextComponent 中包含的选定文本。 |
Color |
getSelectedTextColor()
获取用于呈现选定文本的当前颜色。 |
Color |
getSelectionColor()
获取用于呈现选定的当前颜色。 |
int |
getSelectionEnd()
返回选定文本的结束位置。 |
int |
getSelectionStart()
返回选定文本的起始位置。 |
String |
getText()
返回此 TextComponent 中包含的文本。 |
String |
getText(int offs,
int len)
获取由组件表示的文本部分。 |
String |
getToolTipText(MouseEvent event)
返回用作 event 的工具提示的字符串。 |
TextUI |
getUI()
获取此面向文本的编辑器的用户界面工厂。 |
boolean |
isEditable()
返回指示此 TextComponent 是否可编辑的 boolean。 |
static void |
loadKeymap(Keymap map,
JTextComponent.KeyBinding[] bindings,
Action[] actions)
加载带有一组绑定的 keymap。 |
Rectangle |
modelToView(int pos)
将模型中给定位置转换为视图坐标系统中的位置。 |
void |
moveCaretPosition(int pos)
将插入符移动到新的位置,同时保留最后一次调用 setCaretPosition 之前定义的标记。 |
protected String |
paramString()
返回此 JTextComponent 的字符串表示形式。 |
void |
paste()
将系统剪贴板的内容传输到关联的文本模型中。 |
boolean |
print()
一个便捷打印方法,它显示打印对话框,然后在交互 模式下打印此 JTextComponent ,不打印标题和脚注文本。 |
boolean |
print(MessageFormat headerFormat,
MessageFormat footerFormat)
一个便捷打印方法,它显示打印对话框,然后在交互 模式下打印此 JTextComponent ,打印指定的标题和脚注文本。 |
boolean |
print(MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintService service,
PrintRequestAttributeSet attributes,
boolean interactive)
打印此 JTextComponent 的内容。 |
protected void |
processInputMethodEvent(InputMethodEvent e)
处理组件上发生的输入方法事件,方法是将其指派到任意已注册的 InputMethodListener 对象。 |
void |
read(Reader in,
Object desc)
根据流进行初始化。 |
void |
removeCaretListener(CaretListener listener)
移除插入符侦听器。 |
static Keymap |
removeKeymap(String nm)
移除以前添加到文档中的已命名 keymap。 |
void |
removeNotify()
通知此组件它不再有父组件。 |
void |
replaceSelection(String content)
用给定字符串所表示的新内容替换当前选定的内容。 |
void |
select(int selectionStart,
int selectionEnd)
选定指定的开始和结束位置之间的文本。 |
void |
selectAll()
选择 TextComponent 中的所有文本。 |
void |
setCaret(Caret c)
设置要使用的插入符。 |
void |
setCaretColor(Color c)
设置用于呈现插入符的当前颜色。 |
void |
setCaretPosition(int position)
设置 TextComponent 的文本插入符的位置。 |
void |
setComponentOrientation(ComponentOrientation o)
设置语言敏感的方向,用于排序此组件内的元素或文本。 |
void |
setDisabledTextColor(Color c)
设置用于呈现禁用文本的当前颜色。 |
void |
setDocument(Document doc)
将编辑器与文本文档关联。 |
void |
setDragEnabled(boolean b)
开启或关闭自动拖动处理。 |
void |
setDropMode(DropMode dropMode)
设置此组件的放置模式,为了向后兼容性,此属性的默认值为 DropMode.USE_SELECTION 。 |
void |
setEditable(boolean b)
设置指定的 boolean 变量,以指示此 TextComponent 是否应该为可编辑的。 |
void |
setFocusAccelerator(char aKey)
设置将导致接收的文本组件获取焦点的加速键。 |
void |
setHighlighter(Highlighter h)
设置要使用的 highlighter。 |
void |
setKeymap(Keymap map)
设置用于将事件绑定到操作的 keymap。 |
void |
setMargin(Insets m)
设置组件的边框和它的文本之间的空白。 |
void |
setNavigationFilter(NavigationFilter filter)
设置 NavigationFilter 。 |
void |
setSelectedTextColor(Color c)
设置用于呈现选定文本的当前颜色。 |
void |
setSelectionColor(Color c)
设置用于呈现选定的当前颜色。 |
void |
setSelectionEnd(int selectionEnd)
将选择结束点设置为指定的位置。 |
void |
setSelectionStart(int selectionStart)
将选定起始点设置为指定的位置。 |
void |
setText(String t)
将此 TextComponent 文本设置为指定文本。 |
void |
setUI(TextUI ui)
设置此面向文本的编辑器的用户界面工厂。 |
void |
updateUI()
重新加载可插入的 UI。 |
int |
viewToModel(Point pt)
将视图坐标系统中的给定位置转换为模型中最具代表性的位置。 |
void |
write(Writer out)
将模型的内容存储到给定的流中。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final String FOCUS_ACCELERATOR_KEY
public static final String DEFAULT_KEYMAP
JTextComponent
实例共享的默认 keymap,除非这些实例已有另一个 keymap 集合。
构造方法详细信息 |
---|
public JTextComponent()
JTextComponent
。建立插入符事件的侦听器,并安装可插入的 UI。将组件标记为可编辑状态。不使用任何布局管理器,因为布局受文本的视图子系统管理。文档模型被设置为 null
。
方法详细信息 |
---|
public TextUI getUI()
public void setUI(TextUI ui)
ui
- 工厂public void updateUI()
getUIClassID()
。该 UI 的类型是 TextUI
。设置该 UI 之后调用 invalidate
。
JComponent
中的 updateUI
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
UIManager.getLookAndFeel()
,
UIManager.getUI(javax.swing.JComponent)
public void addCaretListener(CaretListener listener)
listener
- 要添加的侦听器CaretEvent
public void removeCaretListener(CaretListener listener)
listener
- 要移除的侦听器CaretEvent
public CaretListener[] getCaretListeners()
CaretListener
;如果当前没有注册任何插入符侦听器,则返回一个空数组addCaretListener(javax.swing.event.CaretListener)
,
removeCaretListener(javax.swing.event.CaretListener)
protected void fireCaretUpdate(CaretEvent e)
e
- 事件EventListenerList
public void setDocument(Document doc)
doc
- 要显示/编辑的文档getDocument()
public Document getDocument()
public void setComponentOrientation(ComponentOrientation o)
Component
复制的描述LayoutManager
和 Component
子类使用此属性来确定如何布局并绘制组件。
在构造时,组件的方向设置为 ComponentOrientation.UNKNOWN
,表示尚未显式地指定它。UNKNOWN 方向的行为与 ComponentOrientation.LEFT_TO_RIGHT
相同。
要设置单个组件的方向,请使用此方法。要设置整个组件层次结构的方向,请使用 applyComponentOrientation
。
Component
中的 setComponentOrientation
ComponentOrientation
public Action[] getActions()
public void setMargin(Insets m)
Border
对象将使用此值创建适当的空白。不过,如果在文本组件上设置非默认边框,则由 Border
对象负责创建适当的空白(其他情况下实际上忽略此属性)。这会导致重绘该组件。PropertyChange 事件 ("margin") 被发送到所有侦听器。
m
- 边框和文本之间的空间public Insets getMargin()
public void setNavigationFilter(NavigationFilter filter)
NavigationFilter
。NavigationFilter
作为一种限制光标移动的方式由 DefaultCaret
和默认光标移动操作使用。
public NavigationFilter getNavigationFilter()
NavigationFilter
。NavigationFilter
作为一种限制光标移动的方式由 DefaultCaret
和默认光标移动操作使用。null 返回值意味着光标移动和选择不受限制。
public Caret getCaret()
public void setCaret(Caret c)
c
- 插入符getCaret()
public Highlighter getHighlighter()
public void setHighlighter(Highlighter h)
null
,以禁用它。安装新 highlighter 时,将触发一个 PropertyChange 事件 ("highlighter")。
h
- highlightergetHighlighter()
public void setKeymap(Keymap map)
null
可有效地禁用键盘输入。安装新 keymap 时将触发一个 PropertyChange 事件 ("keymap")。
map
- keymapgetKeymap()
public void setDragEnabled(boolean b)
true
,并且组件的 TransferHandler
必须为非 null
。dragEnabled
属性的默认值为 false
。
遵守此属性并识别用户拖动动作的作业取决于外观实现,特别是组件的 TextUI
。启用自动拖动处理时,只要用户在选择上按下鼠标按钮并将鼠标移动几个像素,多数外观(包括那些子类化 BasicLookAndFeel
的外观)就会开始拖放操作。因此将此属性设置为 true
可以对选择行为产生微妙的影响。
如果在忽略此属性的情况下使用外观,仍然可以通过在组件的 TransferHandler
上调用 exportAsDrag
开始拖放操作。
b
- 是否启用自动拖动处理
HeadlessException
- 如果 b
为 true
,并且 GraphicsEnvironment.isHeadless()
返回 true
GraphicsEnvironment.isHeadless()
,
getDragEnabled()
,
JComponent.setTransferHandler(javax.swing.TransferHandler)
,
TransferHandler
public boolean getDragEnabled()
dragEnabled
属性的值setDragEnabled(boolean)
public final void setDropMode(DropMode dropMode)
DropMode.USE_SELECTION
。但是,为了便于用户使用,建议使用 DropMode.INSERT
。它还提供类似于在文本位置之间的放置操作行为,但这样做时不影响实际文本选择和插入符位置。
JTextComponents
支持以下放置模式:
DropMode.USE_SELECTION
DropMode.INSERT
放置模式只在此组件具有接受放置的 TransferHandler
时才有意义。
dropMode
- 要使用的放置模式
IllegalArgumentException
- 如果不支持该放置模式或放置模式为 null
getDropMode()
,
getDropLocation()
,
JComponent.setTransferHandler(javax.swing.TransferHandler)
,
TransferHandler
public final DropMode getDropMode()
setDropMode(javax.swing.DropMode)
public final JTextComponent.DropLocation getDropLocation()
null
。
此方法不用于从 TransferHandler
查询放置位置,因为只有在返回 TransferHandler
的 canImport
并允许显示位置后才设置放置位置。
此属性更改时,组件将触发名为 "dropLocation" 的属性更改事件。
setDropMode(javax.swing.DropMode)
,
TransferHandler.canImport(TransferHandler.TransferSupport)
public Keymap getKeymap()
public static Keymap addKeymap(String nm, Keymap parent)
nm
- keymap 的名称(必须为文档中命名的 keymap 集合中唯一的一个);如果 keymap 是未命名的,则该名称可以为 null
,但调用者负责管理返回的引用,因为未命名的 keymap 无法按名称获取parent
- 父级 keymap;如果未指定的绑定不需要在其他某个 keymap 中解析,则此 keymap 可以为 null
public static Keymap removeKeymap(String nm)
null
名称的 Keymap 可以不以此方式移除。
nm
- 要移除的 keymap 的名称
public static Keymap getKeymap(String nm)
null
命名的 keymap 一起使用。
nm
- keymap 的名称
public static void loadKeymap(Keymap map, JTextComponent.KeyBinding[] bindings, Action[] actions)
加载带有一组绑定的 keymap。这可用于取得一个静态定义表,并将它们加载到某个 keymap 中。以下示例说明了将一些键绑定到与 JTextComponent 关联的剪切、复制和粘贴操作。完成此操作的代码片段可能与以下形式一样:
static final JTextComponent.KeyBinding[] defaultBindings = {
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),
DefaultEditorKit.copyAction),
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK),
DefaultEditorKit.pasteAction),
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK),
DefaultEditorKit.cutAction),
};
JTextComponent c = new JTextPane();
Keymap k = c.getKeymap();
JTextComponent.loadKeymap(k, defaultBindings, c.getActions());
绑定和操作的集合可以为空,但必须为非 null
。
map
- keymapbindings
- 绑定actions
- 操作集合public Color getCaretColor()
public void setCaretColor(Color c)
null
可有效地还原默认颜色。设置颜色会导致触发一个 PropertyChange 事件 ("caretColor")。
c
- 颜色getCaretColor()
public Color getSelectionColor()
public void setSelectionColor(Color c)
null
的方法与设置 Color.white
的方法相同。设置颜色会导致一个 PropertyChange 事件 ("selectionColor")。
c
- 颜色getSelectionColor()
public Color getSelectedTextColor()
public void setSelectedTextColor(Color c)
null
的方法与设置 Color.black
的方法相同。设置颜色会导致触发一个 PropertyChange 事件 ("selectedTextColor")。
c
- 颜色getSelectedTextColor()
public Color getDisabledTextColor()
public void setDisabledTextColor(Color c)
c
- 颜色getDisabledTextColor()
public void replaceSelection(String content)
这是插入内容操作的默认实现使用的一种方法,该操作绑定了 keymap 操作。
虽然大多数 Swing 方法不是线程安全的,但此方法是线程安全的。有关更多信息,请参阅 How to Use Threads。
content
- 要替换选定内容的内容public String getText(int offs, int len) throws BadLocationException
offs
- 偏移量,该值 >= 0len
- 长度,该值 >= 0
BadLocationException
- 如果偏移量或长度无效public Rectangle modelToView(int pos) throws BadLocationException
pos
- 位置,该值 >= 0
BadLocationException
- 如果给定位置不表示关联文档中的有效位置TextUI.modelToView(javax.swing.text.JTextComponent, int)
public int viewToModel(Point pt)
pt
- 视图中要转换的位置
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
public void cut()
null
选定不执行任何操作。
Toolkit.getSystemClipboard()
,
Clipboard
public void copy()
null
选定不执行任何操作。
Toolkit.getSystemClipboard()
,
Clipboard
public void paste()
replaceSelection(java.lang.String)
,
Toolkit.getSystemClipboard()
,
Clipboard
public void moveCaretPosition(int pos)
setCaretPosition
之前定义的标记。这就构成了一个选定。如果文档为 null
,则不执行任何操作。位置必须在 0 和组件的文本长度之间,否则将抛出异常。
pos
- 位置
IllegalArgumentException
- 如果 position
提供的值小于 0 或大于组件的文本长度setCaretPosition(int)
public void setFocusAccelerator(char aKey)
aKey
- 键getFocusAccelerator()
public char getFocusAccelerator()
public void read(Reader in, Object desc) throws IOException
in
- 从中读取的流desc
- 描述流的对象;此对象可以是一个字符串、一个 File、一个 URL 等。有些种类的文档(如 html)或许能够使用此信息;如果为非 null
,则将其作为文档的属性添加
IOException
- 如果使用该流初始化EditorKit.createDefaultDocument()
,
setDocument(javax.swing.text.Document)
,
PlainDocument
public void write(Writer out) throws IOException
out
- 输出流
IOException
- 如果发生任何 I/O 错误public void removeNotify()
JComponent
复制的描述KeyboardAction
。
JComponent
中的 removeNotify
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void setCaretPosition(int position)
TextComponent
的文本插入符的位置。注意,插入符可跟踪更改,所以如果组件的底层文本被更改,则此位置可能会移动。如果文档为 null
,则不执行任何操作。位置必须在 0 和组件的文本长度之间,否则将抛出异常。
position
- 位置
IllegalArgumentException
- 如果 position
提供的值小于 0 或大于组件的文本长度public int getCaretPosition()
public void setText(String t)
TextComponent
文本设置为指定文本。如果该文本为 null
或空,则具有只删除旧文本的效果。插入文本时,得到的插入符的位置由该插入符类的实现确定。
虽然大多数 Swing 方法不是线程安全的,但此方法是线程安全的。有关更多信息,请参阅 How to Use Threads。
注意,文本不是绑定属性,所以更改时不触发 PropertyChangeEvent
。要侦听文本的更改,请使用 DocumentListener
。
t
- 要设置的新文本getText(int, int)
,
DefaultCaret
public String getText()
TextComponent
中包含的文本。如果底层文档为 null
,则将给出 NullPointerException
。注意,文本不是绑定属性,所以更改时不触发 PropertyChangeEvent
。要侦听文本的更改,请使用 DocumentListener
。
NullPointerException
- 如果文档为 null
setText(java.lang.String)
public String getSelectedText()
TextComponent
中包含的选定文本。如果选定为 null
或文档为空,则返回 null
。
IllegalArgumentException
- 如果由于某种原因选定没有到文档的有效映射setText(java.lang.String)
public boolean isEditable()
TextComponent
是否可编辑的 boolean。
setEditable(boolean)
public void setEditable(boolean b)
TextComponent
是否应该为可编辑的。当状态更改时,将触发 PropertyChange 事件("editable")。
b
- 要设置的 booleanisEditable()
public int getSelectionStart()
public void setSelectionStart(int selectionStart)
这可用于在 java.awt.TextComponent
上调用此方法的代码向后兼容。实现此方法以转发给 Caret
实现,后者是维护实际选定的位置。
selectionStart
- 文本的起始位置,该值 >= 0public int getSelectionEnd()
public void setSelectionEnd(int selectionEnd)
这可用于在 java.awt.TextComponent
上调用此方法的代码向后兼容。实现此方法以转发 Caret
实现,后者是维护实际选定的位置。
selectionEnd
- 文本的结束位置,该值 >= 0public void select(int selectionStart, int selectionEnd)
此方法设置选定文本的开始位置和结束位置,并强行限制开始位置必须大于等于零。结束位置必须大于等于开始位置,并大于等于文本组件的文本长度。
如果调用者提供不一致或超出限度的值,则该方法静默地实施这些限制,并且不会失败。要特别指出的是,如果开始位置或结束位置大于文本长度,则将它重置为等于文本长度。如果开始位置小于零,则将它重置为零,如果结束位置小于开始位置,则将它重置为开始位置。
此调用是为向后兼容性提供的。将其作为调用 setCaretPosition
的途径,接着再调用 moveCaretPosition
。管理选定的首选方法是直接调用这些方法。
selectionStart
- 文本的起始位置selectionEnd
- 文本的结束位置setCaretPosition(int)
,
moveCaretPosition(int)
public void selectAll()
TextComponent
中的所有文本。在 null
或空文档上不执行任何操作。
public String getToolTipText(MouseEvent event)
event
的工具提示的字符串。这将返回以下内容之一:
setToolTipText
已使用非 null
值调用,则它将被返回;否则
getToolTipText
的值将被返回。
JTextComponent
不使用 ToolTipManager
注册它本身。这意味着只有已在 ToolTipManager
上调用了 registerComponent
工具提示才在 TextUI
上显示。
JComponent
中的 getToolTipText
event
- 关联事件
event
的工具提示的字符串JComponent.setToolTipText(java.lang.String)
,
TextUI.getToolTipText(javax.swing.text.JTextComponent, java.awt.Point)
,
ToolTipManager.registerComponent(javax.swing.JComponent)
public Dimension getPreferredScrollableViewportSize()
Scrollable
中的 getPreferredScrollableViewportSize
Scrollable
的 JViewport
的 preferredSize
JComponent.getPreferredSize()
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
此操作的默认实现是只返回可视区域的 10%。子类或许能够提供一个更加合理的值。
Scrollable
中的 getScrollableUnitIncrement
visibleRect
- 视口中可见的视图区域orientation
- SwingConstants.VERTICAL
或 SwingConstants.HORIZONTAL
direction
- 小于零向上/左滚动,大于零向下/右滚动
IllegalArgumentException
- 如果方向无效JScrollBar.setUnitIncrement(int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
此操作的默认实现是只返回可视区域。子类将或许能够提供一个更加合理的值。
Scrollable
中的 getScrollableBlockIncrement
visibleRect
- 视口中可见的视图区域orientation
- SwingConstants.VERTICAL
或 SwingConstants.HORIZONTAL
direction
- 小于零向上/左滚动,大于零向下/右滚动
JScrollBar.setBlockIncrement(int)
public boolean getScrollableTracksViewportWidth()
Scrollable
的宽度与视口宽度匹配,则返回 true。例如,支持换行的正常文本视图在这里将返回 true,因为不希望让换行内容超出视口右边界而无法显示。注意,其祖先为 JScrollPane
的 Scrollable
返回 true 可有效地禁用水平滚动。
类似于 JViewport
的滚动容器在每次进行验证时都将使用此方法。
Scrollable
中的 getScrollableTracksViewportWidth
Scrollable
宽度与其自身宽度相匹配,则返回 truepublic boolean getScrollableTracksViewportHeight()
Scrollable
的高度与视口高度匹配,则返回 true。例如,纵行文本视图(按列从左向右流入文本)通过在此处返回 true 可有效地禁用垂直滚动。
类似于 JViewport
的滚动容器在每次进行验证时都将使用此方法。
Scrollable
中的 getScrollableTracksViewportHeight
public boolean print() throws PrinterException
JTextComponent
,不打印标题和脚注文本。注:打印完成前此方法将阻塞。
注:在 headless 模式下,不显示对话框。
此方法调用功能完备的 print
方法执行打印。
true
PrinterException
- 如果打印系统中发生导致打印中断的错误
SecurityException
- 如果不允许此线程初始化打印作业请求print(MessageFormat, MessageFormat, boolean, PrintService, PrintRequestAttributeSet, boolean)
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
JTextComponent
,打印指定的标题和脚注文本。注:打印完成前此方法将阻塞。
注:在 headless 模式下,不显示对话框。
此方法调用功能完备的 print
方法执行打印。
headerFormat
- 在 MessageFormat
中用作标题的文本,或者为 null
,表示没有标题footerFormat
- 在 MessageFormat
中用作脚注的文本,或者为 null
,表示没有脚注
true
PrinterException
- 如果打印系统中发生导致作业中断的错误
SecurityException
- 如果不允许此线程初始化打印作业请求print(MessageFormat, MessageFormat, boolean, PrintService, PrintRequestAttributeSet, boolean)
,
MessageFormat
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintService service, PrintRequestAttributeSet attributes, boolean interactive) throws PrinterException
JTextComponent
的内容。注:打印完成前此方法将阻塞。
通过提供 MessageFormat
参数可以将页面标题和脚注文本添加到输出。打印代码从格式中请求 String
,提供可能包含于格式化字符串中的单个项:表示当前页数的 Integer
。
showPrintDialog boolean
参数允许指定是否向用户显示打印对话框。当向用户显示对话框时,用户可以使用该对话框更改打印属性甚至取消打印。
service
允许为打印对话框提供初始 PrintService
;不显示对话框时,允许指定要打印到的 PrintService
。
attributes
可用于为打印对话框提供初始值;不显示对话框时,用于提供所有需要的属性。attributes
可用于控制如何打印作业,例如双面 或单面。
interactive boolean
参数允许指定是否在交互 模式下执行打印。如果为 true
,则在打印期间显示进度对话框(带有中止选项)。在事件指派线程 上调用 print
时,此对话框为有模式的,否则为无模式的。警告:打印完成前在事件指派线程 上调用此方法(其中 interactive false
)将阻塞所有 事件(包括重绘)的处理。建议只有在不具有可见 GUI 的应用程序进行打印时才这样做。
注:在 headless 模式下,忽略 showPrintDialog
和 interactive
参数且不显示对话框。
此方法确保在打印期间不改变 document
。要直观地指示它,则在打印期间设置 setEnabled(false)
。
此方法使用 getPrintable(java.text.MessageFormat, java.text.MessageFormat)
呈现文档内容。
虽然大多数 Swing 方法不是线程安全的,但此方法是线程安全的。有关更多信息,请参阅 How to Use Threads。
示例用法。此代码片断显示了一个跨平台的打印对话框,除非用户取消该对话框,否则在交互 模式下打印 JTextComponent
:
textComponent.print(new MessageFormat("My text component header"), new MessageFormat("Footer. Page - {0}"), true, null, null, true);
在事件指派线程 之外执行此代码将在后台 执行打印。以下模式可用于后台 打印:
FutureTask<Boolean> future = new FutureTask<Boolean>( new Callable<Boolean>() { public Boolean call() { return textComponent.print(.....); } }); executor.execute(future);
headerFormat
- 在 MessageFormat
中用作标题的文本,或者为 null
,表示没有标题footerFormat
- 在 MessageFormat
中用作脚注的文本,或者为 null
,表示没有脚注showPrintDialog
- 如果显示打印对话框,则为 true
,否则为 false
service
- 初始 PrintService
,或者为 null
,表示使用默认值attributes
- 应用于打印作业的作业属性,或者为 null
,表示没有作业属性interactive
- 是否在交互模式下进行打印
true
PrinterException
- 如果打印系统中发生了导致作业中断的错误
SecurityException
- 如果不允许此线程初始化打印作业请求getPrintable(java.text.MessageFormat, java.text.MessageFormat)
,
MessageFormat
,
GraphicsEnvironment.isHeadless()
,
FutureTask
public Printable getPrintable(MessageFormat headerFormat, MessageFormat footerFormat)
Printable
,用于打印此 JTextComponent
的内容。返回的 Printable
以文档在屏幕上呈现的外形对该文档进行打印,为了符合纸张标准重新格式化时除外。返回的 Printable
可包装于另一个 Printable
内,以便创建复杂的报告和文档。
返回的 Printable
与此 JTextComponent
共享 document
。开发人员确保使用此 Printable
时不改变 document
。打印期间改变 document
将导致不确定的打印行为。
通过提供 MessageFormat
参数可以将页面标题和脚注文本添加到输出。打印代码从格式中请求 String
,提供可能包含于格式化字符串中的单个项:表示当前页数的 Integer
。
打印时,返回的 Printable
对文档内容进行适当地格式化以适合页面大小。为了能正确的自动换行,所有页面的 imageable width
必须相同。请参阅 PageFormat.getImageableWidth()
。
虽然大多数 Swing 方法不是线程安全的,但此方法是线程安全的。有关更多信息,请参阅 How to Use Threads。
可以在任意线程上打印返回的 Printable
。
返回 Printable
的此实现在事件指派线程 上执行所有打印,而不管是在什么线程上使用它。
headerFormat
- 在 MessageFormat
中用作标题的文本,或者为 null
,表示没有标题footerFormat
- 在 MessageFormat
中用作脚注的文本,或者为 null
,表示没有脚注
JTextComponent
内容时使用的 Printable
Printable
,
PageFormat
,
Document.render(java.lang.Runnable)
public AccessibleContext getAccessibleContext()
JTextComponent
关联的 AccessibleContext
。对于文本组件,AccessibleContext
采用 AccessibleJTextComponent
的形式。如有必要,可以创建一个新的 AccessibleJTextComponent
实例。
Accessible
中的 getAccessibleContext
JComponent
中的 getAccessibleContext
JTextComponent
的 AccessibleContext
的 AccessibleJTextComponent
protected String paramString()
JTextComponent
的字符串表示形式。此方法仅在进行调试的时候使用,返回的字符串的内容和格式在各种实现间可能有所不同。返回的字符串可以为空,但不可以为 null
。
重写 paramString
来提供有关 JFC 组件的一些特定新方面的信息。
JComponent
中的 paramString
JTextComponent
的字符串表示形式protected void processInputMethodEvent(InputMethodEvent e)
Component
复制的描述InputMethodListener
对象。
如果组件上没有启用输入方法事件,则不调用此方法。发生下列之一时启用输入方法事件:
addInputMethodListener
注册了一个 InputMethodListener
对象。
enableEvents
启用了输入方法事件。
注意,如果事件参数为 null
,则未指定行为并且可能导致异常。
Component
中的 processInputMethodEvent
e
- 输入方法事件InputMethodEvent
,
InputMethodListener
,
Component.addInputMethodListener(java.awt.event.InputMethodListener)
,
Component.enableEvents(long)
public InputMethodRequests getInputMethodRequests()
Component
复制的描述InputMethodRequests
实例。同时,还必须处理输入方法事件。
Component
中的 getInputMethodRequests
null
Component.addInputMethodListener(java.awt.event.InputMethodListener)
public void addInputMethodListener(InputMethodListener l)
Component
复制的描述getInputMethodRequests
并返回一个 InputMethodRequests
实例,则该组件只接收发自输入方法的输入方法事件。如果侦听器 l
为 null
,则不会抛出异常并且不执行动作。
有关 AWT 的线程模型的细节信息,请参阅 AWT 线程问题。
Component
中的 addInputMethodListener
l
- 输入方法侦听器InputMethodEvent
,
InputMethodListener
,
Component.removeInputMethodListener(java.awt.event.InputMethodListener)
,
Component.getInputMethodListeners()
,
Component.getInputMethodRequests()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。