1

如果我有这样的代码:

class X extends JFrame
{
X()
{
setLayout(new GridLayout(3,3));
JButton b = new JButton("A-ha");
/*I would like to add this button in the center of this grid (2,2)*/
//How can I do it?
}
};
4

3 回答 3

1

据我所知,您必须先填写所有以前的单元格。所以你需要添加4个组件才能添加中心组件。嗯,它可能是一个更好的布局管理器。

你想做什么?也许BorderLayout是您正在寻找的?

于 2010-05-12T10:10:37.947 回答
1

您可能想看看GridBag 布局

于 2010-05-12T10:15:26.970 回答
1

这垂直和水平居中

import java.awt.BorderLayout;
import java.awt.Component;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class centerbutton extends JFrame{
   public centerbutton(){
      setLayout(new BorderLayout());

      JPanel panel = new JPanel();
      JButton button = new JButton("A-ha!");
      button.setAlignmentX(
      Component.CENTER_ALIGNMENT);
      panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
      panel.add(Box.createVerticalGlue());
      panel.add(button);
      panel.add(Box.createVerticalGlue());

      getContentPane().add(panel);

      setVisible(true);
   }

   public static void main(String[] args) {
      new centerbutton();
   }

}
于 2010-05-12T12:37:04.517 回答