如何在java中随机禁用按钮

时间:2017-08-09 13:03:42

标签: java random jbutton

我有这个程序,我需要随机禁用一些按钮,以便用户无法选择所有按钮。有没有办法在java中禁用随机按钮?

我在考虑使用Math.random,但我不知道如何开始或引用它......

这些是按钮。

JButton but1 = new JButton();
JButton but2 = new JButton();
JButton but3 = new JButton();
JButton but4 = new JButton();
JButton but5 = new JButton();
JButton but6 = new JButton();
JButton but7 = new JButton();

3 个答案:

答案 0 :(得分:0)

你可以将它们全部放在一个列表中,然后将列表洗牌并禁用索引0处的元素,例如......

但请注意:

  • 您可能会禁用已禁用的按钮,因此需要进行一些检查
  • 改组列表是一项需要更多时间的操作,它取决于列表中有多少个按钮。
$scope.gridOptions.columnDefs = [
    { name:'address.street', width:150  },
    { name:'address.city', width:150 },
    { name:'address.state', width:50 },
    { name:'address.zip', width:50, pinnedRight: true },
    { name:'company', width:'*' }
];

答案 1 :(得分:0)

将按钮放入List并迭代它们。使用Random.nextBoolean确定是启用还是禁用按钮。这将为您提供50/50的分配。如果您需要其他内容,请使用nextInt和模数。

List<JButton> myButtons = /*whatever*/;

final Random generator = new Random();
for (JButton button : myButtons)
{
    button.setEnabled(generator.nextBoolean());
}

这不能保证任何时候都能启用任意数量的按钮。你不清楚这是否重要。

答案 2 :(得分:0)

Array / Vararg Verson:

public JButton getRandomButton(JButton... buttons) {
    int index = (int) (Math.random() * buttons.length);

    return buttons[index];
}

列表版本:

public JButton getRandomButton(List<JButton> buttons) {
    int index = (int) (Math.random() * buttons.size());

    return buttons.get(index);
}

这两种方法都会返回一个随机的JButton,供你使用。