对于宾果游戏,我有一个显示随机数字的文本字段。我使用一个动作监听器来按下“下一个球”按钮来改变文本字段中的数字。但是,我想使用if语句在每个数字前添加一个字母。该数字既是整数又是文本字段。如何在这里使用if语句?
答案 0 :(得分:1)
单击该按钮时,您需要触发一个动作。
jBtnSelection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selectionButtonPressed();
}
});
这会添加一个简单的侦听器,但您应该查找特定的侦听器,以便单击或输入鼠标等。
现在你需要条件,在字符串的末尾添加一个随机字母。 我建议在包含字母表的字符串中找到一个字母的随机索引...然后,将该字符串添加到Textfield。
String s = "abcdefghijklmnopqrstuvwxyz";
int x = (int)(Math.random()*26); // random int between 0-25
String letter = ""+s.charAt(x); //concatenates
textField.setText(textField.getText()+letter);
如果你想"添加一封信"基于条件.... 有条件的开关也会更清洁......但我和我要告诉你"如果"有条件的......
if(textField.getText().equals("1"))
{
String s = "abcdefghijklmnopqrstuvwxyz";
int x = 1 //index of a letter
String letter = ""+s.charAt(x); //concatenates
textField.setText(textField.getText()+letter); // concatenates text.
}
这是非常基本的东西,所以我认为你可以改变代码的一部分......它具有你正在寻找的程序的所有本质......适合你的需要更多,因为我只使用您在描述中提供的内容。
答案 1 :(得分:1)
我有一个显示随机数字的文本字段。
为什么使用JTextField?随机数用于显示,所以我建议你应该使用JLabel。
该数字既是整数又是文本字段。
这没有意义,数字是随机生成的,然后转换为您在Swing组件中显示的文本字符串。
如何在这里使用if语句?
好吧,使用if语句是一种蛮力的方式来做到这一点。但代码将类似于:
int number = getNextRandomNumber();
String text = null;
if (number <= 15)
text = "B" + number;
else if (number <= 30)
text = "I" + number;
....
label.setText( text );
更好的方法(所以你不需要嵌套的if语句)就像这样:
String[] letters = new String[]{"B", "I", "N", "G", "O"};
int number = getNextRandomNumber();
int letterIndex = (number - 1) % 15;
String text = letters[letterIndex] + number;
label.setText( text );