我正在尝试在jpanel上显示扩展jlabel的对象数组。我知道物体在那里并重叠自己。我尝试使用:content.setLayout(new GridLayout(10,10));内容是jpanel,但对象无法正确显示。
有人对我的问题有任何建议吗?我确定这是一个愚蠢的错误,但我似乎无法找到它= /。
提前谢谢。
public class Vue extends JFrame{
JButton start, stop, pause;
JPanel content;
Case tabC;
Case tabLab[][]= new Case[10][10];
Mouton m = new Mouton(2, 3, 'm');
Vue(){
this.setTitle("Evolution");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menu = new JMenuBar();
start= new JButton("START");
stop = new JButton("STOP");
pause = new JButton("PAUSE");
content = new JPanel();
Herbe h =new Herbe(0, 0);
Loup l = new Loup(0, 0, 'm');
for(int cpt=0;cpt<10;cpt++){
for(int cpt2=0;cpt2<10;cpt2++){
tabLab[cpt][cpt2]=new Case(l,null,cpt,2);
tabLab[cpt][cpt2].setSize(50,50);
content.add(tabLab[cpt][cpt2]);
}
}
content.setLayout(new GridLayout(10,10));
menu.add(start);
menu.add(stop);
menu.add(pause);
content.setBackground(Color.gray);
content.setLayout(new GridLayout(10,10));
this.setJMenuBar(menu);
this.add(content);
setContentPane(content);
}
这是JLabel扩展的对象
public Case(Object o,Object o2,int x,int y) {
JLabel l = new JLabel();
setIcon(new ImageIcon("loup.png"));
ob1=o;
ob2=o2;
this.x=x;
this.y=y;
}
答案 0 :(得分:0)
我只是没有放完整个代码,但确实扩展了JLabel ^^ 实际上整个事情都是这样:
public class Case extends JLabel {
Object ob1;
Object ob2;
int x,y;
public Case(Object o,Object o2,int x,int y) {
JLabel l = new JLabel("something");
setIcon(new ImageIcon("loup.png"));
ob1=o;
ob2=o2;
this.x=x;
this.y=y;
}
答案 1 :(得分:-1)
当你说&#34;对象在那里并重叠自己时#34;这是否意味着你可以在JPanel中看到它们?它们在网格中的哪个位置?你似乎给对象一个固定的y = 2.