Java swing
JTextArea 本来是只读的,实现的效果是双击可以编辑,
按Esc 又变为只读
双击处理事件
- resultTextArea.setEditable(false);
- resultTextArea.setLineWrap(true);
- resultTextArea.setWrapStyleWord(true);
- resultTextArea.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- if (e.getClickCount() == 2) {
- if (!resultTextArea.isEditable()) {
- resultTextArea.setEditable(true);
- DialogUtil.focusSelectAllTF(resultTextArea);
- }
- // System.out.println("Double Click!");
- }
- super.mouseClicked(e);
- }
- });
- public static void focusSelectAllTF(JTextArea ta) {
- ta.requestFocus();
- if (!ValueWidget.isNullOrEmpty(ta.getText())) {
- ta.selectAll();
- }
- }
按Esc的监听事件
- /***
- * 按Esc 文本框失去焦点
- * @param tf
- */
- public static void addKeyListener22(final JTextComponent tf){
- addKeyListener22(tf, null);
- }
- /***
- * 按Alt+Enter时,用户名文本框聚焦,<br>按Esc 文本框失去焦点
- * @param tf :密码输入框
- */
- public static void addKeyListener22(final JTextComponent tf,final JTextComponent tf2){
- tf.addKeyListener(new KeyListener() {
- @Override
- public void keyTyped(KeyEvent e) {
- }
- @Override
- public void keyReleased(KeyEvent e) {
- }
- @Override
- 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)){
- tf2.requestFocus();
- tf2.selectAll();
- }
- }
- }
- });
- }
- /**
- * 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty
- *
- * @param obj
- * @return
- */
- public static boolean isNullOrEmpty(Object obj) {
- if (obj == null)
- return true;
- if (obj instanceof CharSequence)
- return ((CharSequence) obj).length() == 0;
- if (obj instanceof Collection)
- return ((Collection) obj).isEmpty();
- if (obj instanceof Map)
- return ((Map) obj).isEmpty();
- if (obj instanceof Object[]) {
- Object[] object = (Object[]) obj;
- if (object.length == 0) {
- return true;
- }
- boolean empty = true;
- for (int i = 0; i < object.length; i++) {
- if (!isNullOrEmpty(object[i])) {
- empty = false;
- break;
- }
- }
- return empty;
- }
- return false;
- }
附件运行方式:
java -jar share-0.0.3.1-SNAPSHOT.jar
前提:电脑安装java环境
运行界面: