我想在这里将JMenubar放入此Bordlerlayout中。当我启动它时,它会在随机按钮处生成五个圆圈,我想添加一个带有动作监听器的菜单,以再次将圆圈随机放置。所以我想问问这种方式是否可行,或者有没有更简单的方法?
有谁知道为什么有时候我刚开始时只有四个圆圈而不是五个圆圈?
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
最佳答案
菜单栏是您放置在JFrame
或JDialog
而不是布局中的东西。是用于窗口的东西,而不是用于窗口内部的东西。您可以使用弹出菜单,但最好使用按钮或类似的菜单。
我建议您阅读教程:How to Use Menus。