我在用Java做一个扫雷者的克隆。一切都很好,但我想在上面加一个柜台。现在,屏幕上有些按钮关闭了。我需要改变什么布局来修理它?
在添加计数器之前:(https://i.imgur.com/cSKmCGr.jpg)
在“计数器”(https://i.imgur.com/fbMQqQz.jpg)之后添加
这是我的密码:
public static JPanel generate() {
i2w = row*row-ilosc_min;
przyc = new Sap[row][row];
JPanel all = new JPanel(); //panel that contains counter and buttons
JPanel licznik = new JPanel(); //Counter
licznik.setBackground(Color.red);
licznik.setPreferredSize(new Dimension(MyFrame.wym-50, 50)); //counter takes 50 px height and full width of frame
all.add(licznik);
JPanel panel = new JPanel(); //Buttons panel
panel.setVisible(true);
panel.setLayout(new GridLayout(row, row));
for(int x = 0; x < row; x++) { //creating buttons
for(int y = 0; y < row; y++) {
Sap sp = new Sap(x, y); //My buttons that extends JButton
przyc[x][y] = sp;
panel.add(sp); //Adding button to panel
}
}
all.add(panel); //All contains counter and buttons
return all; //Returning it
}当我不创建计数器面板时,按钮就像在第二张照片中一样。
对不起,英语不是我的主要语言。
发布于 2019-04-21 08:56:15
首先,您知道您的面板的默认布局是什么吗?最短的工作解决方案是让根面板使用BorderLayout,并在根面板对象上添加计数器调用
add(BorderLayout.NORTH,theCounterObject);对于按钮的面板,也可以在根面板上调用这个
add(BorderLayout.CENTER,theButtonsPanel);这将解决它的缩短版本,但最好不是一小口或部分,而是所有的布局管理器,因为他们是非常重要的swing,这里是start 布局管理器视觉指南。
pack()方法是不必要的,但它是获取完美大小的好方法--从注释中获取它是个好主意,但问题在于您的布局是FlowLayout,它是面板的默认设置,但是您应该在更改布局之后才这样做。
https://stackoverflow.com/questions/55781063
复制相似问题