在其他类中创建一个JLabel并实现了主类未出现

时间:2019-02-01 19:54:17

标签: java swing jlabel

我想使代码更清晰,并将标签从登录屏幕移至其他类。当我在主类中实现的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);       

1 个答案:

答案 0 :(得分:-1)

尝试一下


public class CredentialsFields extends JPanel {

    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); 
        add(userLabel); // add the label to the current panel
}

  1. 对于复合组件,最好继承自JPanel
  2. 您没有将标签添加到容器CredentialsFields