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

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

?? textcomponentdemo.java

?? java tutotrials or beginners
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

    //Create the edit menu.
    protected JMenu createEditMenu() {
        JMenu menu = new JMenu("Edit");

        //Undo and redo are actions of our own creation.
        undoAction = new UndoAction();
        menu.add(undoAction);

        redoAction = new RedoAction();
        menu.add(redoAction);

        menu.addSeparator();

        //These actions come from the default editor kit.
        //Get the ones we want and stick them in the menu.
        menu.add(getActionByName(DefaultEditorKit.cutAction));
        menu.add(getActionByName(DefaultEditorKit.copyAction));
        menu.add(getActionByName(DefaultEditorKit.pasteAction));

        menu.addSeparator();

        menu.add(getActionByName(DefaultEditorKit.selectAllAction));
        return menu;
    }

    //Create the style menu.
    protected JMenu createStyleMenu() {
        JMenu menu = new JMenu("Style");

        Action action = new StyledEditorKit.BoldAction();
        action.putValue(Action.NAME, "Bold");
        menu.add(action);

        action = new StyledEditorKit.ItalicAction();
        action.putValue(Action.NAME, "Italic");
        menu.add(action);

        action = new StyledEditorKit.UnderlineAction();
        action.putValue(Action.NAME, "Underline");
        menu.add(action);

        menu.addSeparator();

        menu.add(new StyledEditorKit.FontSizeAction("12", 12));
        menu.add(new StyledEditorKit.FontSizeAction("14", 14));
        menu.add(new StyledEditorKit.FontSizeAction("18", 18));

        menu.addSeparator();

        menu.add(new StyledEditorKit.FontFamilyAction("Serif",
                                                      "Serif"));
        menu.add(new StyledEditorKit.FontFamilyAction("SansSerif",
                                                      "SansSerif"));

        menu.addSeparator();

        menu.add(new StyledEditorKit.ForegroundAction("Red",
                                                      Color.red));
        menu.add(new StyledEditorKit.ForegroundAction("Green",
                                                      Color.green));
        menu.add(new StyledEditorKit.ForegroundAction("Blue",
                                                      Color.blue));
        menu.add(new StyledEditorKit.ForegroundAction("Black",
                                                      Color.black));

        return menu;
    }

    protected void initDocument() {
        String initString[] =
                { "Use the mouse to place the caret.",
                  "Use the edit menu to cut, copy, paste, and select text.",
                  "Also to undo and redo changes.",
                  "Use the style menu to change the style of the text.",
                  "Use the arrow keys on the keyboard or these emacs key bindings to move the caret:",
                  "Ctrl-f, Ctrl-b, Ctrl-n, Ctrl-p." };

        SimpleAttributeSet[] attrs = initAttributes(initString.length);

        try {
            for (int i = 0; i < initString.length; i ++) {
                doc.insertString(doc.getLength(), initString[i] + newline,
                        attrs[i]);
            }
        } catch (BadLocationException ble) {
            System.err.println("Couldn't insert initial text.");
        }
    }

    protected SimpleAttributeSet[] initAttributes(int length) {
        //Hard-code some attributes.
        SimpleAttributeSet[] attrs = new SimpleAttributeSet[length];

        attrs[0] = new SimpleAttributeSet();
        StyleConstants.setFontFamily(attrs[0], "SansSerif");
        StyleConstants.setFontSize(attrs[0], 16);

        attrs[1] = new SimpleAttributeSet(attrs[0]);
        StyleConstants.setBold(attrs[1], true);

        attrs[2] = new SimpleAttributeSet(attrs[0]);
        StyleConstants.setItalic(attrs[2], true);

        attrs[3] = new SimpleAttributeSet(attrs[0]);
        StyleConstants.setFontSize(attrs[3], 20);

        attrs[4] = new SimpleAttributeSet(attrs[0]);
        StyleConstants.setFontSize(attrs[4], 12);

        attrs[5] = new SimpleAttributeSet(attrs[0]);
        StyleConstants.setForeground(attrs[5], Color.red);

        return attrs;
    }

    //The following two methods allow us to find an
    //action provided by the editor kit by its name.
    private HashMap<Object, Action> createActionTable(JTextComponent textComponent) {
        HashMap<Object, Action> actions = new HashMap<Object, Action>();
        Action[] actionsArray = textComponent.getActions();
        for (int i = 0; i < actionsArray.length; i++) {
            Action a = actionsArray[i];
            actions.put(a.getValue(Action.NAME), a);
        }
	return actions;
    }

    private Action getActionByName(String name) {
        return actions.get(name);
    }

    class UndoAction extends AbstractAction {
        public UndoAction() {
            super("Undo");
            setEnabled(false);
        }

        public void actionPerformed(ActionEvent e) {
            try {
                undo.undo();
            } catch (CannotUndoException ex) {
                System.out.println("Unable to undo: " + ex);
                ex.printStackTrace();
            }
            updateUndoState();
            redoAction.updateRedoState();
        }

        protected void updateUndoState() {
            if (undo.canUndo()) {
                setEnabled(true);
                putValue(Action.NAME, undo.getUndoPresentationName());
            } else {
                setEnabled(false);
                putValue(Action.NAME, "Undo");
            }
        }
    }

    class RedoAction extends AbstractAction {
        public RedoAction() {
            super("Redo");
            setEnabled(false);
        }

        public void actionPerformed(ActionEvent e) {
            try {
                undo.redo();
            } catch (CannotRedoException ex) {
                System.out.println("Unable to redo: " + ex);
                ex.printStackTrace();
            }
            updateRedoState();
            undoAction.updateUndoState();
        }

        protected void updateRedoState() {
            if (undo.canRedo()) {
                setEnabled(true);
                putValue(Action.NAME, undo.getRedoPresentationName());
            } else {
                setEnabled(false);
                putValue(Action.NAME, "Redo");
            }
        }
    }

    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event dispatch thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        final TextComponentDemo frame = new TextComponentDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    //The standard main method.
    public static void main(String[] args) {
        //Schedule a job for the event dispatch thread:
        //creating and showing this application's GUI.
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                //Turn off metal's use of bold fonts
	        UIManager.put("swing.boldMetal", Boolean.FALSE);
		createAndShowGUI();
            }
        });
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产精品免费观看| 美日韩一区二区| 91麻豆国产福利在线观看| 国产精品天干天干在观线| 国产91在线观看丝袜| 国产精品乱码妇女bbbb| 成人精品一区二区三区四区| 中文字幕制服丝袜成人av| 99国产精品久久久| 亚洲成人免费视频| 欧美成人精品1314www| 韩日精品视频一区| 中文字幕中文字幕一区| 欧美午夜在线一二页| 蜜臀av性久久久久蜜臀aⅴ流畅 | 波多野结衣一区二区三区| 欧美激情综合五月色丁香| 91蜜桃免费观看视频| 一区二区三区国产豹纹内裤在线| 欧美美女网站色| 国产激情一区二区三区桃花岛亚洲| 国产日韩v精品一区二区| 色综合一区二区| 爽好多水快深点欧美视频| 精品国产一区二区国模嫣然| 成人av集中营| 日韩在线观看一区二区| 国产精品丝袜一区| 欧美精品乱人伦久久久久久| 国产乱码精品一区二区三| 一区二区在线观看免费| 26uuu亚洲婷婷狠狠天堂| 色综合咪咪久久| 国产综合色精品一区二区三区| 亚洲欧美日韩在线| 精品日韩av一区二区| 91福利视频久久久久| 国产在线观看一区二区| 一区二区三区中文在线观看| 久久这里只精品最新地址| 色哟哟欧美精品| 国产精品99久久久久久有的能看 | 亚洲国产欧美日韩另类综合| 精品福利一二区| 欧美亚洲一区三区| 成人激情视频网站| 麻豆国产一区二区| 亚洲国产一区二区三区| 国产精品麻豆欧美日韩ww| 日韩一级完整毛片| 欧美日韩中文字幕一区| 成人性生交大合| 国产真实乱子伦精品视频| 午夜视黄欧洲亚洲| 亚洲精选在线视频| 国产精品美女久久久久av爽李琼| 日韩欧美国产综合| 欧美日本国产视频| 欧美视频一区在线| 色综合一区二区| 成人黄色av电影| 国产剧情一区二区三区| 蜜桃av一区二区| 日本欧美一区二区在线观看| 亚洲国产综合视频在线观看| 一区二区三区欧美日| 亚洲丝袜精品丝袜在线| 国产精品欧美久久久久无广告| 亚洲精品一区二区三区福利| 欧美va在线播放| 欧美一区三区四区| 91精品在线麻豆| 欧美精品一二三四| 777欧美精品| 欧美日本在线看| 91精品蜜臀在线一区尤物| 在线91免费看| 日韩精品一区二区三区在线观看| 91精品国产欧美一区二区18| 欧美日韩精品二区第二页| 欧美日韩国产一区| 欧美日韩国产高清一区二区三区| 欧美撒尿777hd撒尿| 这里只有精品电影| 日韩精品一区二区三区三区免费 | 久久影院视频免费| 国产亚洲成av人在线观看导航| 26uuu国产电影一区二区| 亚洲成av人片一区二区三区| 亚洲黄色免费电影| 亚洲妇熟xx妇色黄| 日韩国产欧美在线视频| 久久66热re国产| 激情小说欧美图片| 成人亚洲一区二区一| 色猫猫国产区一区二在线视频| 91九色最新地址| 日韩小视频在线观看专区| 精品国产乱码久久久久久夜甘婷婷| 久久婷婷成人综合色| 中文字幕av一区二区三区高| 亚洲精品精品亚洲| 免费观看在线综合| 成人性视频免费网站| 日本乱人伦aⅴ精品| 7777精品伊人久久久大香线蕉 | 午夜精品爽啪视频| 久久精品国产99久久6| 国产成人免费视频一区| 色婷婷亚洲婷婷| 91麻豆精品国产91久久久使用方法 | 国产酒店精品激情| 97精品久久久久中文字幕| 欧美色男人天堂| 久久久亚洲国产美女国产盗摄| 亚洲蜜臀av乱码久久精品蜜桃| 日韩福利视频导航| 成人av电影在线播放| 欧美视频精品在线观看| 久久久久久99精品| 亚洲制服丝袜在线| 国产麻豆视频一区| 欧美日韩一区高清| 国产欧美va欧美不卡在线| 亚洲影视资源网| 国产白丝网站精品污在线入口| 欧美三级一区二区| 中文字幕欧美日本乱码一线二线| 亚洲成人中文在线| 成人国产免费视频| 精品国产91久久久久久久妲己 | 亚洲r级在线视频| 成人中文字幕在线| 日韩欧美第一区| 亚洲午夜日本在线观看| 国产99一区视频免费| 欧美一区二区三区小说| 日韩伦理免费电影| 国产激情精品久久久第一区二区| 欧美视频在线播放| 亚洲欧美精品午睡沙发| 国产精品系列在线观看| 日韩欧美一二三四区| 亚洲国产精品久久一线不卡| 岛国一区二区在线观看| 久久综合五月天婷婷伊人| 日韩电影在线观看一区| 欧美日韩一区成人| 亚洲精品午夜久久久| 大陆成人av片| 日韩精品五月天| 欧美性一二三区| 亚洲女人****多毛耸耸8| 国产精品一线二线三线| 精品久久一区二区| 日韩不卡一二三区| 欧美日韩一区在线观看| 亚洲激情综合网| 色综合久久综合网97色综合| 国产精品久久毛片a| 成人性视频免费网站| 日本一区二区三区四区| 国产成人自拍高清视频在线免费播放 | 日韩影院精彩在线| 欧美日韩免费高清一区色橹橹| 一区二区三区美女视频| 在线一区二区视频| 一区二区三区中文免费| 欧洲一区二区三区在线| 亚洲国产成人av| 欧美老女人在线| 日韩电影在线观看网站| 欧美一区二区三区四区五区| 三级成人在线视频| 欧美成人性战久久| 国产精品白丝jk白祙喷水网站| 久久久夜色精品亚洲| 国产一区二区免费在线| 国产欧美日韩在线看| 99在线精品观看| 一级做a爱片久久| 欧美日韩亚洲综合在线 | 99久久久精品| 一区二区三区丝袜| 欧美日韩国产美| 免费的成人av| 欧美国产一区二区| 96av麻豆蜜桃一区二区| 亚洲成人中文在线| 精品国产三级电影在线观看| 国产suv一区二区三区88区| 亚洲欧美日韩精品久久久久| 欧美亚洲国产怡红院影院| 蜜桃在线一区二区三区| 国产午夜精品一区二区三区嫩草| 99麻豆久久久国产精品免费优播| 亚洲综合久久久| 欧美mv日韩mv国产网站| jizzjizzjizz欧美| 天天综合日日夜夜精品|