好吧,这个问题可能太基本了,但我一直在谷歌上搜索,但没能找到解决方案(甚至是解决方法)。如果你们中有些人不喜欢这个,我提前表示歉意。
我正在创建一个带有几个按钮的 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/