将JMenubar添加到Borderlayout中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将JMenubar添加到Borderlayout中相关的知识,希望对你有一定的参考价值。

我想在这里要求将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
答案

菜单栏是你放在JFrameJDialog中的东西,而不是布局。是窗户的东西,而不是窗户的内部。您可以使用弹出菜单,但最好使用按钮或类似的东西。

我建议你阅读教程:qazxsw poi。

以上是关于将JMenubar添加到Borderlayout中的主要内容,如果未能解决你的问题,请参考以下文章

BorderLayout.NORTH 行为异常

添加到 BorderLayout 时,无法在 JPanel 中左对齐 JLabel

在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中

第十三周课程总结

BorderLayout布局,修改各个区域大小办法

swing之记事本的简单实现