我为此奋斗了一段时间。我的方法如下:
public Frame(){
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(800, 600);
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridheight =3;
gbc.gridwidth = 3;
JButton upButt = new JButton();//Buttons.upButton();
gbc.gridx = 1;
gbc.gridy = 0;
panel.add(upButt, gbc);
JButton downButt = new JButton();
gbc.gridx = 1;
gbc.gridy = 2;
panel.add(downButt, gbc);
JButton leftButt = new JButton();//Buttons.leftButton();
gbc.gridx=0;
gbc.gridy = 1;
panel.add(leftButt, gbc);
JButton rightButt = new JButton();//Buttons.rightButton();
gbc.gridx =2;
gbc.gridy = 1;
panel.add(rightButt, gbc);
window.add(panel);
window.setVisible(true);
}
据我所知-在阅读和重读java文档之后-这应该给我四个十字形的纽扣。但事实并非如此,按钮在窗口的中心是一个一个叠在一起的。我错过了什么?
3条答案
按热度按时间vfwfrxfs1#
当你使用
gridHeight
以及gridWidth
你说的是“这个组件应该占用3行3列”。来自java文档:
这里,“组件”是添加到面板的组件。你箱子里的纽扣。
照其他海报上说的做,去掉网格宽度和网格高度线,一切都应该很好。
xpcnnkqh2#
为什么使用gridheight和gridwidth为3?至少说起来有点奇怪。
为了我的钱,我会简化事情并使用简单的网格布局:
ippsafx73#
你的意思是:
我会把那些
gridwidth
以及gridheight
```public class TestGridBagLayout extends JFrame {
}