Acessando componentes atraves de outras classes

Boa tarde,

Estou com problemas para acessar componentes através de outras classes e isto esta me obrigando a usar variáveis static ou deixando de criar uma classe ButtonHandler para controle de evento dos botões e usando o método actionPerformed diretamente na classe do frame, ou seja, não estou usando o OO que o Java oferece

No meu programa eu necessito mudar uma Label constantemente após clickar no botão

public class ButtonHandler implements ActionListener { private char tentativa; Pinicial p = new Pinicial(); public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="Arriscar") { tentativa =Character.toUpperCase(Tela.gettxguess());//gettxguess é um metodo(static) criado na classe Tela para trazer o valor do TextField como Char p.munderline(tentativa , Tela.lbpalavra.getText()); } }}
Na classe Pinicial:

public void munderline(char entrada, String palavrau) { //regras do metodo Tela.lbpalavra.setText(palavrau); } public String underlines() { //rergas do metodo return mpalavra; }
Classe Tela:

public class Tela extends JFrame { public static JTextField txguess; private JButton btguess; public static JLabel lbpalavra,lberro,lbdica,status; Pinicial p = new Pinicial(); public Tela() { lbpalavra = new JLabel(p.underlines()); }

Minha duvida é: Como eu poderia acessar o lbpalavra na classe do buttonhandler ou settar seu valor na classe Pinicial sem com que eu tenha que torná-los static

Outra duvida também, é como eu poderia dar dispose() ou setVisible(false)(ou seja, esconder ou sair dela) no frame da Tela no momento em que eu clickar no Botão Arriscar?