Доступ к JLabel из другого класса - PullRequest
0 голосов
/ 17 октября 2018

Итак, я пытаюсь получить доступ (только) к метке "lblNewLabel" в классе "TesteRotulo" из класса "Controle".

public class TesteRotulo {

    private JFrame frame;
    private JLabel lblNewLabel;

    // getter for the label to be accessed by class Controle
    public JLabel getLblNewLabel() {
        return lblNewLabel;
    }

    /**
    * Launch the application.
    */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    TesteRotulo window = new TesteRotulo();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
    * Create the application.
    */
    public TesteRotulo() {
        initialize();
        // instantiate new object Controle having this instance of Testerotulo as parameter
        Controle c = new Controle(TesteRotulo.this);
        c.setRotulo();
    }


     /**
     * Initialize the contents of the frame.
     */
     private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel lblNewLabel = new JLabel();
        frame.getContentPane().add(lblNewLabel, BorderLayout.CENTER);
        frame.setVisible(true);
     }

}

Класс Controle, который должен получить доступ к метке в TesteRotulo

public class Controle {

    private TesteRotulo jM;
    private JFrame janela;
    private JLabel rotulo;

    public Controle(TesteRotulo jM) {
        this.jM = jM;
    }
    public void setRotulo() {
        this.rotulo = jM.getLblNewLabel();
        rotulo.setText("teste");
    }
}

Так что я думаю, что имея ссылку (только) на экземпляр TesteRotulo, я смогу получить доступ к метке.Но безрезультатно.Всегда получайте исключение нулевого указателя.Что случилось?Заранее спасибо ...

1 Ответ

0 голосов
/ 17 октября 2018

Ваша метка в initialize является локальной переменной.JLabel lblNewLabel = new JLabel();

Вы должны написать this.lblNewLabel = new JLabel();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...