JPanel 内部的 JPanel 添加顶部填充
JPanel inside JPanel adds top padding
我想添加一个 CellPanel
,它在 JPanel
中扩展 JPanel
。我这样做是因为我有一些按钮可以从这些 JPanels
中删除内容并添加其他组件。问题是 JPanel
的 FlowLayout
没有将我的 CellPanel
从左上角定位。我能做什么?
这是我遇到这个问题的代码:
JFrame mazeFrame = new JFrame("Create and Play");
mazeFrame.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
mazeFrame.setSize(640, 480);
mazeFrame.setResizable(false);
mazeFrame.setLocationRelativeTo(null);
mazeFrame.setLayout(new GridLayout(rows,columns));//max(7,10)
JPanel[] cellr = new JPanel[rows*columns];
for(int i=0;i<rows*columns; i++){
cellr[i] = new JPanel();
cellr[i].setPreferredSize(new Dimension(mazeFrame.getWidth()/columns,mazeFrame.getHeight()/rows));
mazeFrame.getContentPane().add(cellr[i]);
}
for(int i=0;i<rows*columns; i++){
CellPanel cell = new CellPanel(wall.getImage());
cell.setPreferredSize(new Dimension(mazeFrame.getWidth()/columns,mazeFrame.getHeight()/rows));
cellr[i].add(cell);
}
显示内容:
我做了一些研究并找到了解决方案。
JPanel[] cellr = new JPanel[rows*columns];
for(int i=0;i<rows*columns; i++){
cellr[i] = new JPanel();
cellr[i].setLayout(new GridBagLayout());
mazeFrame.getContentPane().add(cellr[i]);
}
GridBagConstraints g = new GridBagConstraints();
for(int i=0;i<rows*columns; i++){
CellPanel cell = new CellPanel(wall.getImage());
cell.setPreferredSize(new Dimension(mazeFrame.getWidth()/columns,mazeFrame.getHeight()/rows));
g.fill = GridBagConstraints.BOTH;
g.weightx = 1;
g.weighty = 1;
cellr[i].add(cell,g);
}
我想添加一个 CellPanel
,它在 JPanel
中扩展 JPanel
。我这样做是因为我有一些按钮可以从这些 JPanels
中删除内容并添加其他组件。问题是 JPanel
的 FlowLayout
没有将我的 CellPanel
从左上角定位。我能做什么?
这是我遇到这个问题的代码:
JFrame mazeFrame = new JFrame("Create and Play");
mazeFrame.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
mazeFrame.setSize(640, 480);
mazeFrame.setResizable(false);
mazeFrame.setLocationRelativeTo(null);
mazeFrame.setLayout(new GridLayout(rows,columns));//max(7,10)
JPanel[] cellr = new JPanel[rows*columns];
for(int i=0;i<rows*columns; i++){
cellr[i] = new JPanel();
cellr[i].setPreferredSize(new Dimension(mazeFrame.getWidth()/columns,mazeFrame.getHeight()/rows));
mazeFrame.getContentPane().add(cellr[i]);
}
for(int i=0;i<rows*columns; i++){
CellPanel cell = new CellPanel(wall.getImage());
cell.setPreferredSize(new Dimension(mazeFrame.getWidth()/columns,mazeFrame.getHeight()/rows));
cellr[i].add(cell);
}
显示内容:
我做了一些研究并找到了解决方案。
JPanel[] cellr = new JPanel[rows*columns];
for(int i=0;i<rows*columns; i++){
cellr[i] = new JPanel();
cellr[i].setLayout(new GridBagLayout());
mazeFrame.getContentPane().add(cellr[i]);
}
GridBagConstraints g = new GridBagConstraints();
for(int i=0;i<rows*columns; i++){
CellPanel cell = new CellPanel(wall.getImage());
cell.setPreferredSize(new Dimension(mazeFrame.getWidth()/columns,mazeFrame.getHeight()/rows));
g.fill = GridBagConstraints.BOTH;
g.weightx = 1;
g.weighty = 1;
cellr[i].add(cell,g);
}