如何避免覆盖java中的按钮文本?

时间:2014-02-13 18:48:25

标签: java swing random overwrite

是否可以避免覆盖按钮文本。例如,在我的程序中,我有三个按钮;

JButton button1 = new JButton();
JButton button2 = new JButton();
JButton button3 = new JButton();

然后我有一段代码随机选择其中一个按钮并在其上写下给定的文本,现在我想要的是,一旦这段代码选择了1个按钮并写入了文本,我希望它不计算在内在下一个随机选择中使用此按钮或检查按钮上是否已存在某个文本,然后选择另一个按钮来写入文本。

String text = "text";
JButton[] arr = {button1, button2, button3};
Random r = new Random();
JButton b = arr[r.nextInt(arr.length)];
b.setText(text);
b.setEnabled(false);

3 个答案:

答案 0 :(得分:2)

  1. 创建包含按钮的列表。
  2. 您可以使用Collections.shuffle()方法随机化按钮。
  3. 每当您需要一个随机按钮时,您可以访问按钮(0),然后从列表中删除该按钮。

答案 1 :(得分:0)

创建一个列表,其中包含剩余按钮

List<JButton> remaining = new ArrayList( Arrays.asList( arr ) );

每次在按钮上设置文本时,请从列表中删除该按钮

void removeButton(JButton b, String text) {
  remaing.remove(b);
  b.setText(text);
  b.setEnabled(false);
}
然后

随机调用实际大小

JButton b = remaining.get(r.nextInt(remaining.size()));

答案 2 :(得分:0)

if语句应该在这里工作:

String str = b.get Text();
if(str.size()==0){
    //Give text value 
}