天天看點

java swing 文本域輕按兩下變為可編輯

java swing 文本域輕按兩下變為可編輯

 如何實作文本域輕按兩下變為可編輯呢?

給文本域添加滑鼠事件監聽程式即可:

java swing 文本域輕按兩下變為可編輯

resultta1=new assistpopuptextarea();  

        resultta1.seteditable(false);  

        resultta1.setlinewrap(true);  

        resultta1.setwrapstyleword(true);  

resultta1.addmouselistener(new mouseadapter() {  

            @override  

            public void mouseclicked(mouseevent e) {  

                if (e.getclickcount() == 2) {  

                    if (!resultta1.iseditable()) {  

                        resultta1.seteditable(true);  

                        dialogutil.focusselectalltf(resultta1);  

                        resultta1.requestfocus();  

                    }  

                }  

                super.mouseclicked(e);  

            }  

        });  

按esc 鍵變為隻讀(不可編輯)

java swing 文本域輕按兩下變為可編輯

/*** 

     * 按alt+enter時,使用者名文本框聚焦,<br>按esc 文本框失去焦點,并變為不可編輯 

     * @param tf :密碼輸入框 

     */  

    public static void addkeylistener22(final jtextcomponent tf,final jtextcomponent tf2){  

        tf.addkeylistener(new keylistener() {  

            public void keytyped(keyevent e) {  

            public void keyreleased(keyevent e) {  

            public void keypressed(keyevent e) {  

                if ((e.getkeycode() == keyevent.vk_escape)  

                        ) {  

//                  system.out.println("esc");  

                    tf.seteditable(false);  

                }else if ((e.getkeycode() == keyevent.vk_enter)  

                        && (((inputevent) e )  

                                .isaltdown())) {  

                    if(!valuewidget.isnullorempty(tf2)){  

                        if (!tf2.iseditable()) {  

                            tf2.seteditable(true);  

                        }  

                        tf2.requestfocus();  

                        tf2.selectall();  

    }  

調用:

java swing 文本域輕按兩下變為可編輯

dialogutil.addkeylistener22(resultta1);  

 注意:

(1)e.getclickcount() == 2 表示輕按兩下,即短時間間隔之内連續點選兩次;

(2)e.getkeycode() == keyevent.vk_escape 表示按下esc 鍵

參考:

http://hw1287789687.iteye.com/blog/2221256

http://hw1287789687.iteye.com/blog/2173977

http://hw1287789687.iteye.com/blog/2155557