以下是在控制台中给出了很多错误,如果用screen S
初始化new screen(10)
,则不会显示错误(您应该事先减少数组大小),为什么会这样? / p>
import java.awt.*;
import javax.swing.*;
public class screen{
JFrame window=new JFrame();
JPanel scr=new JPanel();
JPanel[][] pixels=new JPanel[240][360];
screen(int scale){
scr.setLayout(new GridLayout(240,360));
int x=0;
for(JPanel Fx[]:pixels){
for(JPanel Fy:Fx){
Fy=new JPanel();
if(x%3==0){Fy.setBackground(Color.red);}
if(x%3==1){Fy.setBackground(Color.green);}
if(x%3==2){Fy.setBackground(Color.blue);}
x++;
Fy.setPreferredSize(new Dimension(scale,scale));
scr.add(Fy);}}
window.add(scr);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setResizable(false);
window.setVisible(true);
}
public static void main (String[] args){
screen S=new screen(1);
}
}
编辑(因为我因为缺乏业力而无法回复):
@Makoto:
这是我遇到的错误,
@Hovercraft充满鳗鱼:
我已经将for循环更改为迭代整数,但它给了我相同的错误。
答案 0 :(得分:3)
你真的需要这么多JPanel
吗?
您创建JPanel
86400
次(240x360
)。
答案 1 :(得分:0)
Fy=new JPanel();
不将新的JPanel分配给数组,而是分配给临时变量。分配给数组的唯一方法是使用标准for循环。