java - 如何使我的 JFrame 中的按钮居中?

标签 java swing jpanel jbutton border-layout

我正在尝试制作棋盘游戏,我将玩家 1 标签和玩家 2 标签分别设置为东边和西边。我无法将 3 x 10 按钮居中。有没有更简单的方法一次制作所有 30 个按钮?以下是我的代码:

    JPanel panel = new JPanel();
    JButton button1 = new JButton();JButton button2 = new JButton();
    JButton button3 = new JButton();JButton button4 = new JButton();
    JButton button5 = new JButton();JButton button6 = new JButton();
    JButton button7 = new JButton();JButton button8 = new JButton();
    JButton button9 = new JButton();JButton button10 = new JButton();
    JButton button11 = new JButton();JButton button12 = new JButton();
    JButton button13 = new JButton();JButton button14 = new JButton();
    JButton button15 = new JButton();JButton button16 = new JButton();
    JButton button17 = new JButton();JButton button18 = new JButton();
    JButton button19 = new JButton();JButton button20 = new JButton();
    JButton button21 = new JButton();JButton button22 = new JButton();
    JButton button23 = new JButton();JButton button24 = new JButton();
    JButton button25 = new JButton();JButton button26 = new JButton();
    JButton button27 = new JButton();JButton button28 = new JButton();
    JButton button29 = new JButton();JButton button30 = new JButton();

    panel.add(button1);panel.add(button2);panel.add(button3);panel.add(button4);
    panel.add(button5);panel.add(button6);panel.add(button7);panel.add(button8);
    panel.add(button9);panel.add(button10);panel.add(button11);panel.add(button12);
    panel.add(button13);panel.add(button14);panel.add(button15);panel.add(button16);
    panel.add(button17);panel.add(button18);panel.add(button19);panel.add(button20);
    panel.add(button21);panel.add(button22);panel.add(button23);panel.add(button24);
    panel.add(button25);panel.add(button26);panel.add(button27);panel.add(button28);
    panel.add(button29);panel.add(button30);
    frame.add(panel);

    Panel p = new Panel();
    p.setLayout(new BorderLayout());
    p.add(new Button("Throw dice"), BorderLayout.SOUTH);
    //p.add(new Button("dice Draw"), BorderLayout.SOUTH);
    p.add(new Label("Player 1"), BorderLayout.EAST);
    p.add(new Label("Player 2"), BorderLayout.WEST);
    frame.add(p);


    panel.setLayout(new GridLayout(3,10));
    panel.setSize(new Dimension(500, 200));
    frame.setSize(new Dimension(600, 300));


  }

}

最佳答案

您可以创建 JButtons 数组并通过创建 JButtons 表来简单地编辑它们,并将它们与 GridLayout cenetred 一起使用 Borderlayout.CENTER :

JButton [] buttons = new JButton[n];
for(int i=0;i<n;i++){
    buttons[i] = new JButton("label "+ i);
    buttons[i].set...
    buttons[i].set...
    gridlayout.add(buttons[i]);
}

borderlayout.add(gridlayout, BorderLayout.CENTER);
panel.setLayout(borderlayout);

希望这对您有所帮助。

关于java - 如何使我的 JFrame 中的按钮居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093122/

相关文章:

java - 为什么我的射弹(图像对象)不移动? Java Swing

java - 使用 Tapestry5 删除 hibernate 实体给出 : "a different object with the same identifier value was already associated with the session"

java - 子类参数化问题

java - 如何为组件设置坐标?

java - 填充条(进度条) JApplet Paint() Thread()

java - 从 Java 打印 JTable

java - 计算器:仅当鼠标悬停在测试 JFrame 类中的按钮上时才会显示按钮

java - 通用数据结构上的 Collections.sort() 不起作用

java - akka java 编程覆盖配置

java - 我可以在 Java 中的 lambda 表达式中放置 if 语句吗?