【问题标题】:Special right-click-event in javajava中的特殊右键单击事件
【发布时间】:2012-08-20 23:24:04
【问题描述】:

所以,场景如下:我在框架中有一个基本的 JTextField,并希望给用户选项,在文本字段中单击鼠标右键,然后像在 Eclipse 或 Microsoft Word 中一样,在弹出菜单中给他复制文本或粘贴他已经创建的文本的选项。 如何制作这种特殊的右键单击事件?

这是该程序的简短版本,我到目前为止:

import java.awt.*;
import javax.swing.*;

public class TestClass extends JFrame{

    private JFrame frame;
    private JTextField textField;

    /**
     * Main method
     * @param args
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    TestClass window = new TestClass();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the window
     */
    public TestClass() {
        initialize();
    }

    /**
     * Initialize components (TextField)
     */
    private void initialize() {
        frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(100, 100, 200, 100);

        textField = new JTextField();
        textField.setText("TextField");
        textField.setFont(new Font("Arial", Font.PLAIN, 20));
        frame.add(textField);
    }
}

【问题讨论】:

    标签: events menu popup click jtextfield


    【解决方案1】:
               private void textfiledMousePressed(java.awt. event.MouseEvent evt) {
    
               if (evt.getModifiers() == MouseEvent.BUTTON3_MASK){
    
               p.show(evt.getComponent(), evt.getX(), evt.getY());
    
               } 
    
                }
    

    右键也可以这样做

    【讨论】:

      【解决方案2】:

      您应该使用鼠标事件为您注册一个事件,然后您必须使用一个弹出菜单在您单击时弹出到目前为止这里是一个示例代码!

                privatevoidformMouseClicked(java.awt.event.MouseEventevt){                                  
      
                    if (evt.isPopupTrigger()){
                        pop.show(evt.getComponent(),evt.getX(), evt.getY());
                    }
      
                }     
      

      【讨论】:

        猜你喜欢
        • 2010-10-05
        • 2011-05-30
        • 1970-01-01
        • 2013-06-28
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 2014-01-03
        • 1970-01-01
        相关资源
        最近更新 更多