【发布时间】:2018-02-28 14:51:24
【问题描述】:
我想在这里请求将 JMenubar 放入此 Bordlerlayout。当我启动它时,它会在随机按钮处生成五个圆圈,我想添加一个带有 actionlistener 的菜单以再次随机放置圆圈。所以我想问一下这种方式是否可行,或者有没有更简单的方法? 有谁知道为什么有时我开始时只有 4 个圆圈而不是 5 个?
package test2;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class action extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
int size = 5;
int[] randompoints = GetRandomPoints(size);
action gt = new action(size, randompoints);
gt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gt.pack();
gt.setVisible(true);
}
private static int[] GetRandomPoints(int size) {
int[] result = new int[size];
for (int i = 0; i < size; i++) {
int helper = (int) (Math.random() * (size * size) + 1);
for (int x = 0; x <= i; x++) {
if (helper == result[x]) {
i--;
}
}
result[i] = helper;
}
return result;
}
public action(int size, int[] randompoints) {
Container pane = getContentPane();
pane.setLayout(new GridLayout(size, size));
for (int i = 0; i < size * size; i++) {
JButton button = new JButton();
button.setBackground(Color.WHITE);
button.setName(Integer.toString(i));
button.setPreferredSize(new Dimension(80, 80));
for (int x = 0; x < randompoints.length; x++) {
if (i == randompoints[x]) {
button.setText("O");
}
}
pane.add(button);
}
}
}enter code here
【问题讨论】: