将我的代码从标签更改为JLabel的工作原理是什么?

时间:2014-05-10 17:09:17

标签: java swing

这是我的原始代码,但不起作用:

//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();

或者挥杆和awt之间的区别?

1 个答案:

答案 0 :(得分:1)

Swing和AWT是完全不同的组件布局。 Swing是一个由java提供的轻量级框架,而AWT更多地依赖于本机库,被认为是#34;重量级"。混合这两个框架几乎总是有问题,这可能是你遇到问题的原因。