Java 在其他类中创建JLabel并实现到主类时不显示

Java 在其他类中创建JLabel并实现到主类时不显示,java,swing,jlabel,Java,Swing,Jlabel,我想使我的代码更清晰,并将标签从登录屏幕移动到其他类。当我在main类中实现JLabel时,它工作得很好,但是当将它移到外部时,它不会出现 public LoginPanel () { frame = new JFrame ("Login"); // initial frame, add title frame.setSize(500, 500);

我想使我的代码更清晰,并将标签从登录屏幕移动到其他类。当我在main类中实现JLabel时,它工作得很好,但是当将它移到外部时,它不会出现

public LoginPanel ()  {

    frame = new JFrame ("Login");                               // initial frame, add title
    frame.setSize(500, 500);                                    // frame size
    frame.setLocation(300, 200);                                // set where program window should start
    frame.setLayout(null);                                      // set layout; you can use (new FlowLayout (FlowLayout.LEFT));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       // closing the program by clicking X
    /*
    userLabel = new JLabel("enter user name label");            // create Label next to the user field
    userLabel.setLocation(10, 10);                              // set location where label will start to appear
    userLabel.setSize (userLabel.getPreferredSize());           //
    frame.add(userLabel);                                       // add userLabel to the frame
    */
    CredentialsFields fields = new CredentialsFields();
    frame.add(fields);
新类到我要移动JLABEL的位置

public class CredentialsFields extends JComponent{

    JLabel userLabel;   

    public CredentialsFields() {

        super();
        userLabel = new JLabel("enter user name label");            // create Label next to the user field
        this.setSize (500,300); 
        this.setLocation(10, 10);       
试试这个


公共类CredentialsFields扩展了JPanel{
JLabel用户标签;
公共凭证字段(){
超级();
userLabel=new JLabel(“输入用户名标签”);//在用户字段旁边创建标签
此值为0.3(500300);
此设置位置(10,10);
添加(userLabel);//将标签添加到当前面板
}
  • 对于复合组件,最好从
    JPanel
  • 您没有将标签添加到容器
    CredentialsFields

  • 我强烈建议你看看