这是我的原始代码,它不起作用:
//this code is to draw a panel and when you click "start", the Panel p2 changes color
JFrame frm = new JFrame("1");
frm.setBackground(new Color(150,130,110));
frm.setSize(400,300);
frm.setLocation(200,200);
Panel p1=new Panel();
frm.add(p1,BorderLayout.NORTH);
final Panel p2=new Panel();
frm.add(p2,BorderLayout.EAST);
Panel p3=new Panel();
frm.add(p3,BorderLayout.CENTER);
p1.setLayout(b2);
p2.setLayout(b3);
p3.setLayout(g1);
});
Label l1=new Label("max:"+sum);
p2.add(l1,BorderLayout.NORTH);
Label l2=new Label("blood:"+blood);
p2.add(l2,BorderLayout.CENTER);
bu1.setBackground(new Color(200,100,100));
p2.setBackground(new Color(100,200,100));
l1.setBackground(new Color(100,100,200));
frm.setVisible(true);
}
}
,我发现如果我可以使它工作,只要改变:
JLabel l1=new JLabel("max:"+sum);
p2.add(l1,BorderLayout.NORTH);
JLabel l2=new JLabel("blood:"+blood);
可以使它工作,所以我想知道为什么?
和
有关系吗? final Panel p2=new Panel();
swing和awt的区别?
Swing和AWT是完全不同的组件布局。Swing是java提供的轻量级框架,而AWT更多地依赖于本地库,被认为是"重量级的"。混合使用这两个框架几乎总是会有bug,这可能就是您遇到问题的原因。