создал JLabel в другом классе и внедрен в основной класс не появляется - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу сделать свой код более понятным и переместить метки с экрана входа в другой класс.когда я реализую 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 голосов
/ 01 февраля 2019

Попробуйте это


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
...