我制作了一个电影院系统。我把电影和电影院放在一个jTable中。我也试图展示电影院。由JButton制作的电影院座椅和我将这些座椅保持在jpanel中。
如何在电影院选择时展示座位?
这是我的代码。
final ArrayList<JPanel> panels = new ArrayList<>();
for(int k=0;k<theater.size();k++){
JPanel panel = new JPanel();
panel.setBounds(500, 0, 500, 500);
contentPane.add(panel);
int y = theater.get(k).getCapacity();
int x = 500/y;
for(int i=0;i<y;i++){
for(int j=0;j<y;j++){
JButton button = new JButton(letters[i]+numbers[j]);
button.setBounds(500 + x*j, 0 + x*i, x-5, x-5);
panel.add(button);
}
}
repaint();
panels.add(panel);
}
答案 0 :(得分:1)
不要使用setBounds()
方法,而是将其留给布局管理器来设置组件的大小和位置。
为此设计使用适当的布局,例如GridLayout,GridBagLayout等。
详细了解布局How to Use Various Layout Managers
不要直接在JFrame
的内容窗格中添加组件,而是首先将组件添加到另一个容器中,例如JPanel
,然后最后将其添加到JFrame
中内容窗格。