Dae galera! Seguinte: estou fazendo um trabalho de engenharia de usabilidade, e o professor pediu que para a exibição de mensagens ao usuário, fosse usada uma classe com métodos estáticos igual ao JOptionPane
Bom, no JOptionPane, uma das formas (a que sempre uso), entre outras sobrecargas é chamá-lo da seguinte forma:
JOptionpane.showMessageDialog(null, "Mensagem a ser mostrada ao usuário");
No caso do meu trabalho, é pra ser feita a mesma coisa (chamada estática), com alguns parâmetros diferentes:
Dialogo.mostrarDialogo("Titulo da Janela", "Mensagem ao usuario", true, "imagens/imagemTeste.GIF");
A única coisa que muda são os parâmetros.
A minha dúvida é: como devo estruturar o construtor e este método estático na classe ‘Dialogo’ para a chamada acontecer do mesmo jeito? Olhei a classe do JOptionPane, mas é muito extensa, difícil de entender.
OBS: a parte lógica jah está pronta, minha dúvida é qto à sintaxe de variáveis e métodos estáticos, por isso vou demonstrar somente as partes que interessarão no entendimento, ok?
Minha classe basicamente é essa: (não estou com ela aqui, vou fazer de cabeça)
public class Dialogo extends JDialog {
private JLabel jLMensagem;
private JLabel jLImagem;
private JButton jBFechar;
/*1ª DÚVIDA: já que o método mostrarDialogo receberá
os parâmetros, preciso declarar esses tipos como estáticos e globais? */
private static String titulo;
private static String mensagem;
private static boolean sucesso; /*sucesso ou não na transação, q poderá ocorrer de várias formas */
private static String imagemClassPath; /*setar o caminho da imagem, que estará em um pacote dentro do projeto*/
/*2ª DÚVIDA: O que devo inicializar no construtor? Será que devo fazer uma sobrecarga? Ou deixo vazio?
não entendi essa parte, pois nenhum objeto é criado, então não sei o q fazer no construtor.
devo tratar alguma coisa referente aos tipos estáticos definidos anteriormente aqui no construtor? */
public Dialogo() {
inicializarComponentes(); /*chamada de método criada pelo NetBeans para inicializar os componentes GUI*/
}
/*3ª DÚVIDA: os parâmetros devem ser passados aqui mesmo?*/
public static void mostrarDialogo(String titulo, String mensagem, boolean sucesso, String iconeClassPath) {
this.titulo = titulo /*se eu fizer isso gera uma exceção non-static*/
/*tratamento do método para configurar a janela conforme os parâmetros passados*/
}
/* 4ª DÚVIDA: devo chamar este método no construtor mesmo? Pois não entendi a real função de um construtor que não recebe parâmetros numa classe com métodos estáticos */
public void inicializarComponentes() {
/*inicialização e configuração dos três componentes GUI*/
}
/*5ª DÚVIDA: os getters e setters devem conter algo diferente?
por último vÊm os getters() e setters() das variáveis estáticas criadas*/
}
Acho q era isso. A classe é bem simples, mas apesar de já ter aprendido teoricamente o ‘static’, nunca tinha usado em prática, por isso sou leigo no assunto
A necessidade mesmo é só fazer um JOptionPane com menos possíbilidades, chamado exatamente da mesma forma, mas mais “bonitinho”, já q o projeto é para desenhar interfaces amigáveis…
Obrigado! E desculpem a falta de conhecimento…
CNA