亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? accessiblehtml.java

?? JAVA的一些源碼 JAVA2 STANDARD EDITION DEVELOPMENT KIT 5.0
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* * @(#)AccessibleHTML.java	1.13 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.swing.text.html;import java.awt.*;import java.awt.event.*;import java.beans.*; import java.util.*; import javax.swing.*;import javax.swing.event.*;  import javax.swing.text.*; import javax.accessibility.*;import java.text.BreakIterator;/* * The AccessibleHTML class provide information about the contents  * of a HTML document to assistive technologies. *  * @version 1.13 12/19/03 * @author  Lynn Monsanto */class AccessibleHTML implements Accessible {    /**     * The editor.     */    private JEditorPane editor;    /**     * Current model.     */    private Document model;    /**     * DocumentListener installed on the current model.     */    private DocumentListener docListener;    /**     * PropertyChangeListener installed on the editor     */    private PropertyChangeListener propChangeListener;    /**     * The root ElementInfo for the document     */    private ElementInfo rootElementInfo;    /*     * The root accessible context for the document     */    private RootHTMLAccessibleContext rootHTMLAccessibleContext;    public AccessibleHTML(JEditorPane pane) {	editor = pane;	propChangeListener = new PropertyChangeHandler();        setDocument(editor.getDocument());        docListener = new DocumentHandler();    }    /**     * Sets the document.     */    private void setDocument(Document document) {        if (model != null) {            model.removeDocumentListener(docListener);        }	if (editor != null) {	    editor.removePropertyChangeListener(propChangeListener);	}        this.model = document;        if (model != null) {            if (rootElementInfo != null) {                rootElementInfo.invalidate(false);            }            buildInfo();            model.addDocumentListener(docListener);        }        else {            rootElementInfo = null;        }	if (editor != null) {	    editor.addPropertyChangeListener(propChangeListener);	}    }    /**     * Returns the Document currently presenting information for.     */    private Document getDocument() {        return model;    }    /**     * Returns the JEditorPane providing information for.     */    private JEditorPane getTextComponent() {        return editor;    }    /**     * Returns the ElementInfo representing the root Element.     */    private ElementInfo getRootInfo() {        return rootElementInfo;    }    /**     * Returns the root <code>View</code> associated with the current text     * component.     */    private View getRootView() {        return getTextComponent().getUI().getRootView(getTextComponent());    }    /**     * Returns the bounds the root View will be rendered in.     */    private Rectangle getRootEditorRect() {        Rectangle alloc = getTextComponent().getBounds();        if ((alloc.width > 0) && (alloc.height > 0)) {            alloc.x = alloc.y = 0;            Insets insets = editor.getInsets();            alloc.x += insets.left;            alloc.y += insets.top;            alloc.width -= insets.left + insets.right;            alloc.height -= insets.top + insets.bottom;            return alloc;        }        return null;    }    /**     * If possible acquires a lock on the Document.  If a lock has been     * obtained a key will be retured that should be passed to     * <code>unlock</code>.     */    private Object lock() {        Document document = getDocument();        if (document instanceof AbstractDocument) {            ((AbstractDocument)document).readLock();            return document;        }        return null;    }    /**     * Releases a lock previously obtained via <code>lock</code>.     */    private void unlock(Object key) {        if (key != null) {            ((AbstractDocument)key).readUnlock();        }    }    /**     * Rebuilds the information from the current info.     */    private void buildInfo() {        Object lock = lock();        try {            Document doc = getDocument();            Element root = doc.getDefaultRootElement();            rootElementInfo = new ElementInfo(root);            rootElementInfo.validate();        } finally {            unlock(lock);        }    }    /*     * Create an ElementInfo subclass based on the passed in Element.     */    ElementInfo createElementInfo(Element e, ElementInfo parent) {        AttributeSet attrs = e.getAttributes();        if (attrs != null) {            Object name = attrs.getAttribute(StyleConstants.NameAttribute);            if (name == HTML.Tag.IMG) {                return new IconElementInfo(e, parent);            }            else if (name == HTML.Tag.CONTENT || name == HTML.Tag.CAPTION) {                return new TextElementInfo(e, parent);            }            else if (name == HTML.Tag.TABLE) {                return new TableElementInfo(e, parent);            }        }        return null;    }        /**     * Returns the root AccessibleContext for the document     */    public AccessibleContext getAccessibleContext() {	if (rootHTMLAccessibleContext == null) {	    rootHTMLAccessibleContext = 		new RootHTMLAccessibleContext(rootElementInfo);	}	return rootHTMLAccessibleContext;    }        /*     * The roow AccessibleContext for the document     */    private class RootHTMLAccessibleContext extends HTMLAccessibleContext {	public RootHTMLAccessibleContext(ElementInfo elementInfo) {	    super(elementInfo);	}	/**	 * Gets the accessibleName property of this object.  The accessibleName	 * property of an object is a localized String that designates the purpose	 * of the object.  For example, the accessibleName property of a label	 * or button might be the text of the label or button itself.  In the	 * case of an object that doesn't display its name, the accessibleName	 * should still be set.  For example, in the case of a text field used	 * to enter the name of a city, the accessibleName for the en_US locale	 * could be 'city.'	 *	 * @return the localized name of the object; null if this 	 * object does not have a name	 *	 * @see #setAccessibleName	 */	public String getAccessibleName() {	    if (model != null) {		return (String)model.getProperty(Document.TitleProperty);	    } else {		return null;	    }	}		/**	 * Gets the accessibleDescription property of this object.  If this	 * property isn't set, returns the content type of this	 * <code>JEditorPane</code> instead (e.g. "plain/text", "html/text").	 *	 * @return the localized description of the object; <code>null</code>	 * 	if this object does not have a description	 *	 * @see #setAccessibleName	 */	public String getAccessibleDescription() {	    return editor.getContentType();	}		/**	 * Gets the role of this object.  The role of the object is the generic	 * purpose or use of the class of this object.  For example, the role	 * of a push button is AccessibleRole.PUSH_BUTTON.  The roles in 	 * AccessibleRole are provided so component developers can pick from	 * a set of predefined roles.  This enables assistive technologies to	 * provide a consistent interface to various tweaked subclasses of 	 * components (e.g., use AccessibleRole.PUSH_BUTTON for all components	 * that act like a push button) as well as distinguish between sublasses	 * that behave differently (e.g., AccessibleRole.CHECK_BOX for check boxes	 * and AccessibleRole.RADIO_BUTTON for radio buttons).	 * <p>Note that the AccessibleRole class is also extensible, so 	 * custom component developers can define their own AccessibleRole's	 * if the set of predefined roles is inadequate.	 *	 * @return an instance of AccessibleRole describing the role of the object	 * @see AccessibleRole	 */	public AccessibleRole getAccessibleRole() {	    return AccessibleRole.TEXT;	}    }    /*     * Base AccessibleContext class for HTML elements     */    protected abstract class HTMLAccessibleContext extends AccessibleContext        implements Accessible, AccessibleComponent {	protected ElementInfo elementInfo;	public HTMLAccessibleContext(ElementInfo elementInfo) {	    this.elementInfo = elementInfo;	}	// begin AccessibleContext implementation ...	public AccessibleContext getAccessibleContext() {	    return this;	}	/**	 * Gets the state set of this object.	 *	 * @return an instance of AccessibleStateSet describing the states	 * of the object	 * @see AccessibleStateSet	 */	public AccessibleStateSet getAccessibleStateSet() {	    AccessibleStateSet states = new AccessibleStateSet();	    Component comp = getTextComponent();	    if (comp.isEnabled()) {		states.add(AccessibleState.ENABLED);	    }	    if (comp instanceof JTextComponent &&		((JTextComponent)comp).isEditable()) {				states.add(AccessibleState.EDITABLE);		states.add(AccessibleState.FOCUSABLE);	    }	    if (comp.isVisible()) {		states.add(AccessibleState.VISIBLE);	    }	    if (comp.isShowing()) {		states.add(AccessibleState.SHOWING);	    }	    return states;	}		/**	 * Gets the 0-based index of this object in its accessible parent.	 *	 * @return the 0-based index of this object in its parent; -1 if this 	 * object does not have an accessible parent.	 *	 * @see #getAccessibleParent 	 * @see #getAccessibleChildrenCount	 * @see #getAccessibleChild	 */	public int getAccessibleIndexInParent() {	    return elementInfo.getIndexInParent();	}		/**	 * Returns the number of accessible children of the object.	 *	 * @return the number of accessible children of the object.	 */	public int getAccessibleChildrenCount() {	    return elementInfo.getChildCount();	}		/**	 * Returns the specified Accessible child of the object.  The Accessible	 * children of an Accessible object are zero-based, so the first child 	 * of an Accessible child is at index 0, the second child is at index 1,	 * and so on.	 *	 * @param i zero-based index of child	 * @return the Accessible child of the object	 * @see #getAccessibleChildrenCount	 */	public Accessible getAccessibleChild(int i) {	    ElementInfo childInfo = elementInfo.getChild(i);	    if (childInfo != null && childInfo instanceof Accessible) {		return (Accessible)childInfo;	    } else {		return null;	    }	}		/** 	 * Gets the locale of the component. If the component does not have a 	 * locale, then the locale of its parent is returned.  	 *	 * @return this component's locale.  If this component does not have 	 * a locale, the locale of its parent is returned.	 *	 * @exception IllegalComponentStateException 	 * If the Component does not have its own locale and has not yet been 	 * added to a containment hierarchy such that the locale can be	 * determined from the containing parent. 	 */	public Locale getLocale() throws IllegalComponentStateException {	    return editor.getLocale();	}	// ... end AccessibleContext implementation	// begin AccessibleComponent implementation ...	public AccessibleComponent getAccessibleComponent() {	    return this;	}		/**	 * Gets the background color of this object.	 *	 * @return the background color, if supported, of the object; 	 * otherwise, null	 * @see #setBackground	 */	public Color getBackground() {	    return getTextComponent().getBackground();	}		/**	 * Sets the background color of this object.	 *	 * @param c the new Color for the background	 * @see #setBackground	 */	public void setBackground(Color c) {	    getTextComponent().setBackground(c);	}		/**	 * Gets the foreground color of this object.	 *	 * @return the foreground color, if supported, of the object; 	 * otherwise, null	 * @see #setForeground	 */	public Color getForeground() {	    return getTextComponent().getForeground();	}		/**	 * Sets the foreground color of this object.	 *	 * @param c the new Color for the foreground	 * @see #getForeground	 */	public void setForeground(Color c) {	    getTextComponent().setForeground(c);	}		/**	 * Gets the Cursor of this object.	 *	 * @return the Cursor, if supported, of the object; otherwise, null	 * @see #setCursor	 */	public Cursor getCursor() {	    return getTextComponent().getCursor();	}		/**	 * Sets the Cursor of this object.	 *	 * @param c the new Cursor for the object	 * @see #getCursor	 */	public void setCursor(Cursor cursor) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99r国产精品| 国产.欧美.日韩| 国产精品白丝av| 91国偷自产一区二区开放时间| 欧美老女人第四色| 欧美国产1区2区| 三级欧美韩日大片在线看| 国产成人自拍在线| 91精品国产入口| 尤物在线观看一区| av一区二区三区| 久久久影视传媒| 蜜臀91精品一区二区三区| 91精品福利视频| 亚洲国产高清在线观看视频| 日本午夜精品一区二区三区电影| 91蜜桃视频在线| 中文字幕乱码亚洲精品一区| 免费观看在线综合色| 欧美手机在线视频| 一区二区免费在线| 91麻豆国产精品久久| 国产亚洲综合性久久久影院| 久久精品国产精品亚洲精品| 欧美精品久久99久久在免费线 | 激情综合网av| 欧美女孩性生活视频| 亚洲综合一二区| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品视频免费看| 国产69精品久久久久毛片 | 欧美日韩一区二区三区四区| 1区2区3区国产精品| 国产91清纯白嫩初高中在线观看| 91精品国产高清一区二区三区蜜臀 | 欧洲精品视频在线观看| 亚洲色图视频网| 欧美三级电影在线看| 亚洲欧美日韩国产综合| 色噜噜狠狠色综合中国| 一区二区三区高清| 欧美丝袜丝交足nylons图片| 亚洲午夜电影在线| 91精品国产综合久久精品| 香蕉影视欧美成人| 欧美一区永久视频免费观看| 日韩成人伦理电影在线观看| 26uuu国产日韩综合| 狠狠色综合播放一区二区| 久久综合久久鬼色中文字| 国产成人综合网| 一区二区三区视频在线看| 欧美撒尿777hd撒尿| 蜜桃免费网站一区二区三区| 久久久久9999亚洲精品| 91视频一区二区三区| 亚洲成人免费在线| 欧美精品一区二区在线观看| 国产**成人网毛片九色| 亚洲综合成人网| 日韩一区二区三区三四区视频在线观看| 激情五月婷婷综合| 亚洲视频中文字幕| 91精品国产91久久综合桃花| 韩国av一区二区三区| 亚洲六月丁香色婷婷综合久久| 欧美一区二区三区在线视频| 成人性色生活片免费看爆迷你毛片| 亚洲欧美一区二区三区极速播放| 欧美肥妇毛茸茸| 国产成人在线观看| 亚洲精品视频在线观看网站| 精品剧情在线观看| 在线视频亚洲一区| 国产精品77777| 五月天视频一区| 国产精品视频一二三| 日韩一区二区中文字幕| 色一区在线观看| 国产精品一区二区在线观看不卡| 亚洲国产人成综合网站| 国产欧美综合在线观看第十页| 欧美日韩国产成人在线91| 国产99久久久精品| 久久国产三级精品| 亚洲一二三四区| 国产精品入口麻豆九色| 日韩一级片网址| 欧美日韩在线观看一区二区| 成人午夜精品一区二区三区| 日本午夜精品视频在线观看| 久久99在线观看| 一区二区三区日韩欧美精品| 中文字幕精品三区| 精品国产123| 91麻豆精品国产自产在线 | 久久精品二区亚洲w码| 亚洲一区二区三区激情| 国产精品国模大尺度视频| 26uuu久久综合| 欧美一区二区三区不卡| 欧美午夜精品一区| 在线日韩国产精品| 91亚洲国产成人精品一区二三 | 色八戒一区二区三区| 成人性色生活片免费看爆迷你毛片| 激情文学综合插| 蜜桃一区二区三区在线观看| 爽好久久久欧美精品| 天天操天天色综合| 亚洲第一福利一区| 一区二区不卡在线播放| 一区二区三区成人| 亚洲三级电影全部在线观看高清| 国产亚洲精品资源在线26u| 久久久久久电影| 国产欧美一区视频| 国产女人18毛片水真多成人如厕| 久久久久久久精| 中文字幕精品三区| 国产精品美女久久久久av爽李琼| 国产精品美女视频| 日韩美女精品在线| 亚洲精品国产无天堂网2021| 一区二区三区欧美视频| 亚洲一区在线观看视频| 亚洲成人tv网| 久久99九九99精品| 国产91丝袜在线播放0| 99re8在线精品视频免费播放| 色天使久久综合网天天| 欧美精选在线播放| 欧美va日韩va| 中文字幕av免费专区久久| 亚洲男人电影天堂| 亚洲一级不卡视频| 麻豆91在线播放| 国产精品小仙女| 色一情一乱一乱一91av| 欧美精品第1页| 国产亚洲一区二区在线观看| 最新欧美精品一区二区三区| 亚洲国产精品尤物yw在线观看| 天使萌一区二区三区免费观看| 久久国产成人午夜av影院| 成人性生交大片免费看中文网站| 在线观看不卡一区| 欧美tickling挠脚心丨vk| 中文字幕视频一区| 日韩高清一级片| 不卡欧美aaaaa| 在线综合视频播放| 日本一区二区三区高清不卡 | 一区免费观看视频| 五月激情丁香一区二区三区| 99久久国产免费看| 日韩精品专区在线影院观看| 国产精品国模大尺度视频| 日本欧美在线观看| 不卡视频在线观看| 日韩欧美久久一区| 亚洲男同1069视频| 国产在线精品一区二区不卡了 | 亚洲精品少妇30p| 麻豆91免费观看| 欧美在线三级电影| 国产亚洲精品bt天堂精选| 五月天久久比比资源色| 99热99精品| 久久久久国产成人精品亚洲午夜| 亚洲成人www| 91视频com| 国产视频一区在线观看| 免费在线观看一区二区三区| 色综合中文字幕国产| 国产夜色精品一区二区av| 美日韩黄色大片| 欧美亚洲一区二区在线| 中文字幕五月欧美| 国产99久久久精品| 精品久久久久99| 日韩高清在线一区| 欧美色视频在线观看| 亚洲视频一区在线观看| 国产不卡免费视频| 国产婷婷色一区二区三区四区| 免费在线观看精品| 7777女厕盗摄久久久| 一区二区在线观看av| 91一区二区三区在线播放| 国产欧美一区二区精品仙草咪| 久久99精品国产麻豆不卡| 日韩小视频在线观看专区| 午夜精品福利一区二区三区av| 在线一区二区视频| 亚洲免费在线看| 91成人网在线| 亚洲午夜一区二区| 欧美亚洲高清一区| 午夜欧美2019年伦理|