如何使用动作侦听器中的if语句在文本字段中编辑为整数

时间:2016-05-03 17:23:56

标签: java swing actionlistener jtextfield

对于宾果游戏,我有一个显示随机数字的文本字段。我使用一个动作监听器来按下“下一个球”按钮来改变文本字段中的数字。但是,我想使用if语句在每个数字前添加一个字母。该数字既是整数又是文本字段。如何在这里使用if语句?

2 个答案:

答案 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 );
相关问题