嗨我试图在每次有人按下GUI中的按钮时向字符串E添加一个数字(在本例中为“1”)。所以起初字符串E只是空白(字符串E =“”)但是如果有人按下按钮一旦它变为1(字符串E =“1”)。如果多次按下该按钮,则每次按下都应添加1。我目前的代码是:
public void handle(ActionEvent event) {
String E = (Z + "1");
String Z = E;
System.out.println(E);
}
(字符串设置为E =“”和Z =“”)但每次按下按钮时它只会输出一个“1”。我不确定我做错了什么......
答案 0 :(得分:4)
听起来你在E
方法之外定义的变量(字段?)Z
和handle()
正在初始化为""
。不幸的是,您的handle()
方法声明了影响外部名称的局部变量。只需从handle()
中删除声明即可使用外部名称:
public void handle(ActionEvent event) {
E = Z + "1";
Z = E;
System.out.println(E);
}
看起来你实际上只需要其中一个变量:
public void handle(ActionEvent event) {
E += "1";
System.out.println(E);
}
答案 1 :(得分:0)
您只创建Z和E的本地实例。将String声明移到方法之外并将它们声明为私有。
private String E="";
private String Z="";
public void handler(ActionEvent h)
{
E=Z+"1";
Z=E;
System.out.println(Z);
}
虽然似乎没有必要在这里声明两个变量,所以你可以做一些像
这样的事情E+="1";
System.out.println(E);
答案 2 :(得分:-1)
您必须先声明变量Z才能使用它。
String Z = "asd";
String E = (Z + "1");
System.out.println(E);
工作和打印出来:
asd1
答案 3 :(得分:-1)
您发布的代码未编译,您只是不能使用之前未声明的变量...
String E = (Z + "1");
String Z = E;
在使用之前改为声明Z
String Z = "";
String E = (Z + "1");
你需要/想要将“1”附加到字符串中的前一个值,不需要声明一个新对象,你可以直接追加它!
Z += "1";
或
E += "1";
答案 4 :(得分:-1)
您是否计算某人按下按钮并将其打印出来的次数?如果是这样,你不需要一个字符串,你必须在你的处理程序外面声明你的变量
public class MyClass {
private buttonPressCount = 0;
//... some code to display a button and link handler to button...
public void handle(ActionEvent event) {
buttonPressCount++;
System.out.println("Button has been pressed " + buttonPressCount + " times.");
}
}