![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauYDM5EDM5gjZjVjZ30SN5YmYtI2NzMTL4M2Yw0yN2kDNmBTYz8CX4UTOw8CXwETMw8CX05WZth2YhRHdh9CXkF2bsBXdvwVbvNmLllXZ0lmLywGZvw1LcpDc0RHaiojIsJye.jpg)
如何實作文本域輕按兩下變為可編輯呢?
給文本域添加滑鼠事件監聽程式即可:
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 鍵變為隻讀(不可編輯)
/***
* 按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();
}
調用:
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