在Java Swing桌面应用程序中。我有一些较小的类,所有这些都在一个总体应用程序类中使用。其中一个较小的类是表示我的登录页面的JPanel。我在此页面的登录按钮中添加了一个mouselistener,如下所示:
Public class loginPage extends JPanel{
String username;
boolean capturedName=false;
JTextField nameField;
...
loginButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
username = nameField.getText();
capturedName=true; //for redundant checking of mouse click event
System.out.println(username); //error checking
System.out.println(capturedName); //error checking
}
});
}
在代表JFrame的一个单独的display类中,我将登录页面作为所述类的一个属性,并在将登录页面添加到app类之后,在app类中实例化这个display类。我正在尝试捕获App类中的登录页面用户名attr并将其传递给其他方法。但当我运行代码并单击login按钮时,textbox中的值不会被捕获。
//Set login page GUI up
while(display.loginPage.username==null){ //this is initially true
if (display.loginPage.capturedName){ //boolean to check if button has been clicked
display.loginPage.username=display.loginPage.nameField.getText(); //intentional redundancy
String username=display.loginPage.username;
System.out.print(username);
//pass username to other methods
}
}
运行代码时,在username textfield上输入一个名称,然后单击login,键入的名称和capturedName布尔值的true值都会打印出来,但是
if (display.loginPage.capturedName)
条件永远不满足。另外,当我添加print display.loginpage.username时,我会得到一个空值。在相同的价值之间出现这种差异的原因是什么呢?
在相同的价值之间出现这种差异的原因是什么呢?
您可能有两个相同类型的对象,一个显示,其状态正在更改,另一个未显示,您正在if块中检查。
但是,为了获得更好的帮助,请考虑创建并发布一个最小的、完整的、可验证的示例程序。我们不想看到你的整个程序,但你应该把你的代码压缩成最小的部分,它仍然可以编译,没有与你的问题无关的额外代码,但仍然可以证明你的问题。顺便说一句,您永远不会希望像现在这样将MouseListener与JButton一起使用。相反,使用ActionListener,因为这正是构建它的目的。
我需要取回一个在未来的onSuccess块中被改变的变量。这是我的示例代码。 返回为无,不会变为,或。那么这是否意味着onSuccess块中变量的值无法返回?然而,这似乎奏效了: 我可以在未来的onSuccess块中做什么,以便根据未来的结果是整数还是字符串,将< code>ret的值返回为< code>1或< code>2?在这种情况下,scala的作用域规则是什么?(我用的是akka)。感谢任
问题内容: 这是我学习python的第二天(我了解C ++和一些OOP的基础知识),并且我对python中的变量有些困惑。 这是我目前对它们的了解: Python变量是对对象(可变或不可变)的引用(或指针?)。当我们有类似的内容时,不可变对象将在内存中的某个位置创建,而名称- 对象引用对将在某个命名空间中创建。当我们拥有时,不会复制任何内容,但是现在两个变量都引用相同的对象,并被添加到相同的名称空
变量作用域 变量的作用域值的是变量的生命周期和作用范围(全局与局部作用域的区别)。 作用域介绍 静态作用域 静态作用域有称为词法作用域,即指其在编译的阶段就可以决定变量的引用。静态作用域只更变量定义的位置有关与代码执行的顺序无关。 var x = 0; function foo() { alert(x); } function bar() { var x = 20; foo(); }
任何编程中的范围都是程序的一个区域,其中定义的变量可以存在,并且超出该变量无法访问。 有三个地方,其中变量可以用Pascal编程语言声明 - 在子程序或块中,称为局部变量 在所有子程序之外,称为全局变量 在子程序参数的定义中称为形式参数 让我们解释什么是local和global变量和形式参数。 局部变量 (Local Variables) 在子程序或块内声明的变量称为局部变量。 它们只能由子程序或
如果你之前用过像Python或者Ruby之类的动态语言,现在你可能已经熟悉了Vim脚本的变量。你会发现Vim变量的大部分内容跟你想的一样,不过有一个东西可能会不同,那就是变量的作用域。 在两个分隔的窗口中分别打开两个不同的文件,然后在其中一个窗口中执行下面的命令: :::vim :let b:hello = "world" :echo b:hello 如你所愿,Vim会显示world。现在切换到
编程最简单的算法之一,莫过于变量交换。交换变量的常见算法需要一个中间变量进行变量的临时保存。用传统方法编写变量交换代码如下: 在计算机刚发明时,内存非常“精贵”。这种变量交换往往是非常奢侈的。于是计算机“大牛”发明了一些算法来避免使用中间变量: 这样的算法很多,但是都有一定的数值范围和类型要求。 到了Go语言时,内存不再是紧缺资源,而且写法可以更简单。使用 Go 的“多重赋值”特性,可以轻松完成变