JPanel按钮等

时间:2014-01-04 14:54:43

标签: java swing jpanel

所以我正在做这个 http://en.wikipedia.org/wiki/Futoshiki ,我的JPanel带有我的按钮(5x5),现在我需要插入一个随机数(3-7)<或者>根据图像在某些按钮之间运算符。 我该怎么做呢?我不是要求代码,而是用于完成这样一个任务的逻辑。这些运营商当然必须是合法的,因为它们将在以后用于解决游戏。

public class Test implements ActionListener {
    JButton[][] gumbi = new JButton[5][5];

public Test() {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 500);

    JPanel panel = new JPanel(new GridLayout(5, 5));

    Random op = new Random();
    int operatorji = op.nextInt(5) + 3;     //the random number of operators

    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            gumbi[i][j] = new JButton("0");
            gumbi[i][j].addActionListener(this);
            panel.add(gumbi[i][j]);
        }
    }   

    frame.add(panel);
    frame.setVisible(true);
}

另外,我如何添加∨和∧运算符(纵向)?

1 个答案:

答案 0 :(得分:1)

以下是我根据您的代码做的事情:

  • 在按钮之间留出一些水平和垂直间隙(为操作员腾出空间)
  • 为了显示运营商,我只是在面板上绘制它们
  • 我会编写一个类似drawOperator(String operator, int h, int v, Graphics2D g)的方法,使用h,v来定位运算符(对X * X网格系统进行成像以定位运算符),并以某种方式将操作符拉入按钮之间的正确间隙。 / LI>
  • 这些运算符的位置也可以随机生成(因为位置是虚构的X * X网格)

虽然^^

,但对于一个小练习来说可能有点太多了