Java 获取一个按钮以重复一个操作
我正在为我的第一个java项目制作一个简单的应用程序。 它组合各种字符串以产生输出。例如:名字 然而,我遇到了一个障碍,我把我的GUI都布置好了,所有的字符串都编好了,它们都会生成一个随机结果,并在被告知时将其写入文本标签,但是如果我再次单击按钮-nada。没什么 我的问题是-我如何让一个按钮重复我让它做的过程?没有人能向我解释这一点。我不是在寻找一个快速解决办法,而是一个“如何做”,因为我希望学习。:) 以下是我的代码的简化版本:Java 获取一个按钮以重复一个操作,java,string,button,random,methods,Java,String,Button,Random,Methods,我正在为我的第一个java项目制作一个简单的应用程序。 它组合各种字符串以产生输出。例如:名字 然而,我遇到了一个障碍,我把我的GUI都布置好了,所有的字符串都编好了,它们都会生成一个随机结果,并在被告知时将其写入文本标签,但是如果我再次单击按钮-nada。没什么 我的问题是-我如何让一个按钮重复我让它做的过程?没有人能向我解释这一点。我不是在寻找一个快速解决办法,而是一个“如何做”,因为我希望学习。:) 以下是我的代码的简化版本: public static String[] name1 =
public static String[] name1 = {
"a", "b", "c", "d", "e", "f", "g", "h", "i",
"j", "k", "l", "n", "o", "p", "q", "r", "s",
"t", "u", "v", "w", "x", "y", "z"
};
public static String[] name2 = {
"oh noes", "its not working","sad face"
};
public static int name1length = name1.length;
public static int name2length = name2.length;
public static int rand1 = (int) (Math.random() * name1length);
public static int rand2 = (int) (Math.random() * name2length);
public static String phrase = name1[rand1] + " " + name2[rand2];
问题是,变量是静态的,它们只初始化一次,这意味着短语只计算一次 假设每次都需要不同的
短语
,然后每次单击按钮时重新初始化它们。从rand1
、rand2
和短语中删除单词static
,然后重新编译,应该会为您指明正确的方向
也许像
class RandomLabeller {
private static String[] name1 = "abcdefghijklmnopqrstuvwxyz".toCharArray();
private static String[] name2 = {"oh noes","its not working","sad face"};
private static int name1length = name1.length;
private static int name2length = name2.length;
private int rand1 = (int)(Math.random()*name1length);
private int rand2 = (int)(Math.random()*name2length);
public final String phrase = name1[rand1] + " " + name2[rand2];
}
然后使用新的RandomLabeller().phrase,而不是任何class.phrase。更好的方法是,使用一些方法(如getPhrase()
将它们隔离开来。请考虑两件事:
为您的目的创建对象,不要使用这么多静态字段-这是邪恶的,以后会给您带来很多麻烦
Write方法reset()将字段设置为默认值,start()开始“进程”并包含reset(),如果要重复“进程”,只需调用start()
请你把你的代码作为一个“代码样本”放进去,这样更容易阅读。我确实这么做了,但它一定没有格式化。谢谢你修好它。:)这听起来像是我想要实现的。因此,为该特征创建一个新类。我如何将结果调用为文本字符串?新的RandomLabeller()。短语每次都会以字符串的形式为您提供一个唯一的短语。