`

swing 文本框双击Ctrl,触发删除全部并黏贴

阅读更多

java swing 文本框双击Ctrl,触发删除全部并黏贴

tc.addKeyListener(new KeyListener() {
            private long lastTimeMillSencond;

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
            }

            @Override
            public void keyPressed(KeyEvent e) {
                if (EventHWUtil.isJustCtrlDown(e)) {
                    if (lastTimeMillSencond == 0) {
                        lastTimeMillSencond = System.currentTimeMillis();
                    } else {
                        long currentTime = System.currentTimeMillis();
                        if (MenuUtil2.isDoubleClick(currentTime - lastTimeMillSencond)) {
                            System.out.println("双击Ctrl");
                            String content = WindowUtil.getSysClipboardText();
                            if (ValueWidget.isNullOrEmpty(content)) {
                                return;
                            }
                            tc.setText(content);
                            tc.requestFocus();
                            lastTimeMillSencond = 0;
                        } else {
                            lastTimeMillSencond = System.currentTimeMillis();
                        }
                    }
                }
            }
        });

见类: com/swing/component/TextCompUtil2.java

 

如何判断是否点击了Ctrl 呢?

public static boolean isJustCtrlDown(KeyEvent e) {
        int keyCode = e.getKeyCode();
        return e.isControlDown() && keyCode != KeyEvent.VK_TAB
                && keyCode != KeyEvent.VK_QUOTE/*双引号*/
                && keyCode != KeyEvent.VK_OPEN_BRACKET/*{*/
                && keyCode != KeyEvent.VK_CLOSE_BRACKET/*}*/
                && keyCode != KeyEvent.VK_COLON/*分号*/
                && keyCode != KeyEvent.VK_PERIOD/*句号*/
                && keyCode != KeyEvent.VK_COMMA/*逗号*/
                && keyCode != KeyEvent.VK_AT/*@*/
                && keyCode != KeyEvent.VK_2/*@*/
                && keyCode == KeyEvent.VK_CONTROL;
    }

 见类:com/swing/event/EventHWUtil.java

 

鼠标中间也是:删除全部并黏贴

 /***
     * 给文本框增加右键菜单.
     * 
     * @param field2
     */
    public static JPopupMenu setPopupMenu(final JTextComponent field2,JPopupMenu textMenu1)
    {
    	final JPopupMenu textMenu;
    	if(ValueWidget.isNullOrEmpty(textMenu1)){
        	textMenu = new JPopupMenu();
        }else{
        	textMenu=textMenu1;
        }
        field2.addMouseListener(new MouseInputListener()
        {
            @Override
            public void mouseMoved(MouseEvent e)
            {

            }

            @Override
            public void mouseDragged(MouseEvent e)
            {

            }

            @Override
            public void mouseReleased(MouseEvent e)
            {
                //                super.mousePressed(e);
                if (e.getButton() == MouseEvent.BUTTON3)
                {
//                	addPopupMenuItem(field2,textMenu);
                    textMenu.show(e.getComponent(), e.getX(), e.getY());
                }else if (e.getButton() == MouseEvent.BUTTON2){//鼠标中键
                	//按下鼠标中键,把剪切板内容黏贴到文本框中
                	String text=WindowUtil.getSysClipboardText();
                	if(!ValueWidget.isNullOrEmpty(text)
                			&&!ValueWidget.isNullOrEmpty(field2)){
                		field2.setText(text);
                		field2.setForeground(TextCompUtil2.DEFAULT_TF_FOREGROUND);//防止placeholder
                		field2.requestFocus();
                	}
                }
            }

            @Override
            public void mousePressed(MouseEvent e)
            {
            }

            @Override
            public void mouseExited(MouseEvent e)
            {
            }

            @Override
            public void mouseEntered(MouseEvent e)
            {
            }

            @Override
            public void mouseClicked(MouseEvent e)
            {
            }
        });
        return textMenu;
    }

 

见类:com/swing/menu/MenuUtil2.java

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    java swing 文本框自动补全示例

    java swing 文本框自动补全示例,数据源默认当前系统字体,便于测试,单文件一看就懂...........

    java swing文本框(密码框)没有内容时,占位显示默认信息(仿IOS)

    通过这种方式,我们可以轻松地在Java Swing应用中实现类似于iOS的文本框占位符效果,提高用户体验。在实际项目中,可以根据具体需求对代码进行扩展和优化,例如添加更多的样式控制或处理特殊情况。

    java文本框只有下面一条线

    在Java Swing中,`JTextField`是用于创建用户输入单行文本的组件,而`JPasswordField`则用于创建隐藏字符的密码输入框。在提供的代码片段中,我们看到`LoginFrame`类继承自`JFrame`,并包含了`JTextField`(用户名...

    Swing事件源可能触发的事件

    在Java Swing库中,用户界面(UI)组件是事件的源,它们能够触发多种类型的事件,这些事件通常与用户的交互、组件的状态变化或应用程序的内部操作相关。以下是对标题和描述中提到的Swing组件及其可能触发的事件的...

    Java Swing JTextField 搜索引擎 信息检索(源码)

    实现信息检索功能 像百度的网页搜索框 搜索相关资源并可以选择并显示搜索结果 使用JTable作为搜索结果显示框 在网上找不到相关的资源 自已写了一个 这只是提供一个思路 如果有更好的想法 可以联系我 蛋疼的 Java***...

    swing 日期选择器 支持点击文本框选择 和自定义按钮选择

    swing 日期选择器 支持点击文本框选择 和自定义按钮选择

    swing Ctrl+S 保存配置

    总的来说,Swing的Ctrl+S保存功能是通过监听键盘事件并关联到特定的保存操作来实现的,这使得用户能够方便快捷地保存他们的工作。同时,理解和利用Swing的源代码以及相关的工具类,可以帮助开发者更高效地构建具有...

    Java Swing实现添加数据并查询数据显示

    在Swing界面设计方面,你需要创建JFrame作为主窗口,然后添加各种组件,如JButton(用于触发添加和查询操作)、JTextField(用户输入数据)和JTable(显示查询结果)。使用ActionListener监听按钮事件,当用户点击...

    swing效果点击下拉框自动填充文本框

    在Java的Swing库中,实现“点击下拉框自动填充文本框”的功能,涉及到Swing组件的交互、事件监听以及数据绑定的概念。这个功能在许多GUI应用中都非常常见,例如用户选择一个选项后,相应的文本框会自动更新为所选...

    文本框日历

    总的来说,"文本框日历"项目展示了如何在Java Swing环境中集成日历功能,并通过文本框显示选定的日期。这对于需要日期选择功能的桌面应用来说非常实用。开发者可以从源代码中学习到如何自定义Swing组件,以及如何...

    JAVA_Swing小示例

    1. **Swing组件**: Swing包含了许多组件,如JButton(按钮)、JLabel(标签)、JTextField(文本框)、JTextArea(多行文本框)、JComboBox(下拉框)、JCheckBox(复选框)、JRadioButton(单选按钮)等。...

    SWING做一个IP输入框

    java SWING做一个IP输入框,功能很好

    Java Swing JTextField文本框的代码示例

    Java Swing JTextField 文本框的代码示例 Java Swing JTextField 文本框是 Java Swing 库中的一种基本组件,用于编辑单行文本。下面是 Java Swing JTextField 文本框的代码示例和相关知识点说明。 概述 JTextField...

    java调用swing生成柱状图

    - `javax.swing.JChart`或自定义组件:由于Swing内置的组件并不直接支持柱状图,通常需要自定义组件或者使用第三方库如JFreeChart来绘制。 - 如果选择自定义,可以使用`(Graphics2D)`接口的绘图方法,如`drawRect...

    java swing 时间日期选择控件

    Swing提供了JCalendar和JDatePicker这两个常用的日期选择组件,它们使得用户能够方便地在日历视图中选择日期,或者通过一个文本框和下拉小部件选择日期和时间。 1. **JCalendar**: 这是一个第三方组件,通常由`...

    JAVA文本框验证大全

    在Java编程中,文本框验证(Text Field Validation)是用户界面设计的重要环节,尤其是在开发桌面应用或Web应用时。文本框验证确保用户输入的数据符合预设的格式和规则,从而提高数据的准确性和系统的安全性。以下是...

    文本框内容隐藏

    在IT行业中,文本框内容隐藏是一个重要的议题,尤其是在网络安全、数据隐私和用户界面设计领域。文本框通常是网页或应用程序中用户输入数据的地方,如用户名、密码或其他敏感信息。隐藏文本框内容是为了保护用户数据...

    swing中jlist点击事件demo

    swing中的jlist 代码中定义了两个jlist 从一个jlist双击列表项可以将该项从这个列表删除并添加至另外一个列表中去

    文本框设置默认值、验证以及提交

    以上代码中,`event.preventDefault()`防止表单的默认刷新页面行为,然后获取文本框的值,并根据需求进行验证。如果验证通过,使用`$.ajax`发送数据到服务器;否则,向用户显示错误提示。 在提供的压缩包文件...

    Swing全部组建应用实例

    本篇将深入讲解Swing的全部组建及其应用实例,包括事件处理和布局管理。 1. **组件(Components)**:Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动面板...

Global site tag (gtag.js) - Google Analytics