java - 如何在Java中将参数传递给鼠标事件(如果可能)?

标签 java swing mouseevent jlabel mouse-listeners

好吧,这个问题可能太基本了,但我一直在谷歌上搜索,但没能找到解决方案(甚至是解决方法)。如果你们中有些人不喜欢这个,我提前表示歉意。

我正在创建一个带有几个按钮的 GUI 应用程序,因此当然我们需要一个鼠标事件(当单击其中一个按钮时)。例如:

public class myProject extends JFrame implements MouseListener {
    public int x = 4;
    public static void main(String[] args) {
        Jframe app = new JFrame();
        app.setTitle // and all that jazz...        
        JLabel label = new JLabel();
        label.setText("Old text");
        app.add(label);

        // Then later on...
        public void mouseClicked(MouseEvent e) {
            app.setTitle("New Title");
            label.setText("New text");
            System.out.println(x);
            // "app" and "label" throw errors, cannot find symbol
            // But x is fine...?
        }
    }
}

我尝试将应用程序元素设置为公共(public)/私有(private)实例变量,但这似乎没有改变任何内容。我什至尝试创建一种中间类来提供帮助,它将复制对交互器的引用作为实例变量,并让鼠标事件调用使用这些引用的方法(第二次尝试非常接近上面的代码;但是通过尝试从主方法引用设置公共(public)变量给了我更多错误(关于我们如何不能从静态方法调用非静态对象)。

所以,最重要的是,到目前为止,与这个可怕的错误作斗争一直是一场“徒劳的追逐”,所以我很感激您可能知道的任何提示/技巧/解决方法。谢谢。 :)

最佳答案

尝试将您的代码更改为这样的内容

Jframe app;
JLabel label;
    public static void main(String[] args) {
           new myProject();
        }

    public myProject()
    {
          app = new JFrame();
          app.setTitle // and all that jazz...        
          label = new JLabel();
          label.setText("Old text");
          app.add(label);
    }
      public void mouseClicked(MouseEvent e) {
          app.setTitle("New Title");
          label.setText("New text");
          System.out.println(x);
      }

关于java - 如何在Java中将参数传递给鼠标事件(如果可能)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510615/

相关文章:

java - 如何正则表达式匹配排除某些字符?

macos - Applescript - 获取元素的坐标

java - 使用 Spring Data REST 实现更新深度嵌套 JSON 结构的最佳方法是什么?

java - 无法在mysql中的java程序中设置法语字符

Java配置文件问题

java - JFrame 背景图像顶部出现奇怪的白色条纹

Java SwingUtilities.invokeLater

javascript - 如何在 ("mouseenter") 2 秒后延迟?

javascript - 在空闲时间后隐藏我的鼠标光标,当我移动鼠标时它会显示出来

java - 对于每个循环 : can we populate an array?