我想在这里要求将JMenubar放入这个Bordlerlayout。当我启动它时,它会随机按钮生成五个圆圈,我想添加一个带有动作滑块的菜单,以便再次随机放置圆圈。所以我想问一下这种方式是否可行,还是有更简单的方法? 并且有人知道为什么有时候我开始时只有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
答案 0 :(得分:5)
菜单栏是您放在JFrame
或JDialog
中的内容,而不是布局中的内容。是窗户的东西,而不是窗户的内部。您可以使用弹出菜单,但最好使用按钮或类似的东西。
我建议你阅读教程:How to Use Menus。