Java 用数组元素填充GridBagLayout
我正在尝试使用GridBagLayout构建一个包含数组元素的面板。创建元素效果很好。问题是要么忽略了Layoutmanager,要么约束没有正确应用,不管怎样,按钮的排列就像根本没有Layoutmanager一样。那我要怎么做才能让它看起来像一张桌子 提前谢谢 旁注:不,JTable不是一个选项。在我的应用程序中,实际上只创建了一些按钮 编辑:我发现了问题。我只是忘记了“setLayout(gbl);”这句话,我真傻Java 用数组元素填充GridBagLayout,java,arrays,gridbaglayout,Java,Arrays,Gridbaglayout,我正在尝试使用GridBagLayout构建一个包含数组元素的面板。创建元素效果很好。问题是要么忽略了Layoutmanager,要么约束没有正确应用,不管怎样,按钮的排列就像根本没有Layoutmanager一样。那我要怎么做才能让它看起来像一张桌子 提前谢谢 旁注:不,JTable不是一个选项。在我的应用程序中,实际上只创建了一些按钮 编辑:我发现了问题。我只是忘记了“setLayout(gbl);”这句话,我真傻 //(includes) public class GUI { p
//(includes)
public class GUI {
public static void main (String[] args) {
JFrame frame = new JFrame();
frame.add (new MyPanel(5, 4);
frame.setVisible(true);
}
private class MyPanel () extends JPanel {
public MyPanel (int x, int y) {
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout (gbl);
JButton[][] buttons = new JButton[x][y];
for (int i=0; i<x; i++) {
for (int j=0; j<y; j++) {
buttons[i][j] = new JButton("a"+i+j);
gbc.gridx = j; gbc.gridy = i;
gbl.setConstraints(buttons[i][j], gbc);
add (buttons[i][j]);
}
}
}
}
}
//(包括)
公共类GUI{
公共静态void main(字符串[]args){
JFrame=新JFrame();
frame.add(新的MyPanel(5,4);
frame.setVisible(true);
}
私有类MyPanel()扩展了JPanel{
公共MyPanel(整数x,整数y){
GridBagLayout gbl=新的GridBagLayout();
GridBagConstraints gbc=新的GridBagConstraints();
设置布局(gbl);
JButton[][]按钮=新JButton[x][y];
对于(int i=0;i),您也可以考虑使用A,代码更简单,更易于维护:
public class MyPanel extends JPanel {
public MyPanel(int x, int y) {
setLayout(new MigLayout("wrap " + x));
JButton[][] buttons = new JButton[x][y];
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
buttons[i][j] = new JButton("a" + i + j);
add(buttons[i][j]);
}
}
}
}
公共类MyPanel扩展了JPanel{
公共MyPanel(整数x,整数y){
setLayout(新MIG布局(“包裹”+x));
JButton[][]按钮=新JButton[x][y];
对于(int i=0;i
请发布一个完整、自包含、可运行的示例。