【发布时间】:2017-07-19 22:02:36
【问题描述】:
我正在尝试在 x 和 y 轴的框架中以不同的网格宽度和网格高度创建按钮,但问题是,我无法运行它,因为我收到错误:/ 这是我的代码.. 什么我做错了吗?
public class calculator extends JPanel{
public static final int WIDTH=320;
public static final int HEIGHT=480;
private GridBagLayout layout;
private GridBagConstraints gbc;
private JButton[] newbuttons;
private JTextField text;
private int[][] newConstraints= new int[][]{
{0,5,2,1},
{0,4,1,1},
{1,4,1,1},
{2,4,1,1},
{0,0,1,1},
{0,0,1,1},
{0,0,1,1},
{0,0,1,1},
{0,0,1,1},
};
public calculator(){
setPreferredSize(new Dimension(WIDTH,HEIGHT));
layout=new GridBagLayout();
layout.columnWidths= new int[]{110,120,40,80};
layout.rowHeights= new int[]{80,80,80,80,80,80};
setLayout(layout);
gbc= new GridBagConstraints();
newbuttons=new JButton[10];
for(int i=0;i<newbuttons.length;i++){
newbuttons[i]=new JButton(""+i);
gbc.gridx=newConstraints[i][0];
gbc.gridy=newConstraints[i][1];
gbc.gridwidth=newConstraints[i][2];
gbc.gridheight=newConstraints[i][3];
gbc.fill=GridBagConstraints.BOTH;
add(newbuttons[i],gbc);
}
}
public static void main(String[] args) {
JFrame frame= new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new calculator(), BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
【问题讨论】:
-
如果您询问错误,您需要发布完整的错误消息。
-
您确定错误在此代码中吗? JFrame和main方法在哪里?
标签: java swing layout indexoutofboundsexception