对于循环创建多个按钮不起作用

时间:2013-10-10 11:30:53

标签: java arrays jpanel jlabel

最近我尝试将按钮添加到JLabel数组中,这些按钮被放入JPanel(在JFrame中)。出于某种原因,(我正在运行eclipse)我得到一个编译器错误,它在这一行中断:me [f] .add(new JButton(“”));.我无法将一系列按钮放入面板(panel1)。谁能告诉我我做错了什么?

 package Grid;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.GridLayout;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 public class Grid {
private static int width;
private static int length;
public static JFrame frame = new JFrame();  
public static JPanel panel1 = new JPanel();
private static JButton but[] = new JButton[width*length];
private static JFrame window = new JFrame();
public static void Gridify(int width,int length){
    //frame.setSize(500,500);   
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setEnabled(true); 
        panel1.setLayout(new GridLayout(width,length));
        panel1.setVisible(true);
        panel1.setBackground(Color.GREEN);
    frame.add(panel1);  
}
public void manualPanels(int num){
    for(int f=0; f < num;f++){
    JPanel me[] = new JPanel[f];
    me[f].add(new JButton(" "));
    me[f].setVisible(true);
    panel1.add(me[f]);
    }
    frame.setVisible(true);
}

 }

1 个答案:

答案 0 :(得分:0)

此行中有两个错误:

me[f].add(new JButton(" "));

首先,me[f]不存在,因为你的数组从0变为f-1。

其次,你的数组充满了null(因为你刚创建它)。那么,你会写,me[0],你仍然会收到错误。

要创建num个新JPanel并将其放入panel1,您需要执行以下操作:

for (int f = 0; f < num; f++) {
    JPanel panel = new JPanel();
    panel1.add(panel);
}