Pessoal, sou novo por aqui e já estou com uma dúvida!
Peguei um exemplo de um livro e tentei separar as classes, mas nisso eu tenho que chamar um método de uma outra classe, mas não estou conseguindo. Estou colocando o código aqui pra quem puder me ajudar dar uma olhada. No livro a segunda classe está dentro da primeira, e assim o programa roda que é uma beleza! Eu até consegui resolver de outra maneira, mas gostaria de saber o que está falando nesse caso, mantendo como está o código o máximo possível. O erro está na chamada do método “mostrarTelaPrincipal()” da segunda classe, mais exatamente de dentro do ActionListener. Tentei referenciar por uma instância da 1ª classe, pela própria 1ª classe, mas não consegui. Como é que se faz, hein?
1ª classe:
package scltc;
import javax.swing.*;
import java.awt.*;
public class TelaPrincipal extends JFrame{
TelaSplash splash;
public TelaPrincipal(){
super ("Está é a janela principal do aplicativo");
Container tela = getContentPane();
FlowLayout layout = new FlowLayout (FlowLayout.LEFT, 0, 0);
tela.setLayout (layout);
splash = new TelaSplash();
splash.setVisible (true);
setSize (400, 300);
setLocationRelativeTo (null);
}
public void mostrarTelaPrincipal(){
setVisible (true);
}
public static void main(String[] args) {
TelaPrincipal aplicacao = new TelaPrincipal();
aplicacao.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
}
2ª classe:
package scltc;
import scltc.TelaPrincipal;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TelaSplash extends JWindow{
public TelaSplash(){
Container tela = getContentPane();
tela.setLayout (new FlowLayout(FlowLayout.LEFT, 1, 1));
ImageIcon imagem = new ImageIcon ("imagens/tela_splash.jpg");
JLabel rotulo = new JLabel (imagem);
tela.add (rotulo);
ActionListener fechar = new ActionListener(){
public void actionPerformed (ActionEvent e){
setVisible (false);
dispose();
mostrarTelaPrincipal();
}
};
javax.swing.Timer timer = new javax.swing.Timer (5000, fechar);
timer.start();
pack();
setLocationRelativeTo (null);
}
}
Desde já muito obrigado pela atenção galera,
Abraços…