将我的代码从label更改为JLabel工作



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

//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,这可能就是您遇到问题的原因。

最新更新