Galera,
Estou fazendo um programa que me foi passado para treinar que é o seguinte:
Precisa aparecer 4 janelas e as 4 telas precisam conter 3 botões (botão 1, botão 2 e botão fechar).
O funcionamento do programa é o seguinte:
Ao pressionar o botão 1 da janela 1 é necessário aparecer na tela “Botão 1 da janela 1”.
Ao pressionar o botão 1 da janela 3 é necessário aparecer na tela “botão 1 da janela 3”.
e assim por diante, o mesmo vale pro botão 2.
O funcionamento do botão fechar deve ser o seguinte:
Ao pressionar o botão fechar da janela 1, a janela 2 deve fechar.
Ao pressionar o botão fechar da janela 3, a janela 4 deve fechar.
E assim por diante.
Devo tbm utilizar reaproveitamento de código para os botões visto que são exatamente a mesma coisa.
Consegui fazer a primeira parte do programa dos botões 1 e 2, porém estou travado na parte de fechar, pois acho que da forme que fiz o programa não é possível.
Alguém consegue me ajudar?
Criei uma classe “Tela1” estendendo jFrame do Java Swing, dei control C + V para criar as outras classes (Tela2,Tela3 e Tela4), e criei uma classe principal para rodar as 4 janela ao mesmo tempo pois não estava conseguindo rodar tudo ao mesmo tempo em classes separadas.
Criei uma classe “Botão” com um listener para execução da ação, com um if para identificar se o botão é de fechar ou não.
Os botoes das telas apenas chamam o método da classe Botão e pronto.
A parte dos botões está correta mas agora não consigo fazer a parte de fechar.
Alguém conseue me ajudar ou saberia outra forma de fazer corretamente?
código classe Principal:
Bloco de Citação
public class Desafio2 {`
Texto pré-formatado
`
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Tela1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Tela1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Tela1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Tela1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Tela1 tela1 = new Tela1();
tela1.setVisible(true);
tela1.setLocation(500,250);
tela1.setTitle("TELA 1");
}
});
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Tela2 tela2 = new Tela2();
tela2.setVisible(true);
tela2.setLocation(1000,250);
tela2.setTitle("TELA 2");
}
});
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Tela3 tela3 = new Tela3();
tela3.setVisible(true);
tela3.setLocation(500,600);
tela3.setTitle("TELA 3");
}
});
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Tela4 tela4 = new Tela4();
tela4.setVisible(true);
tela4.setLocation(1000,600);
tela4.setTitle("TELA 4");
}
});
}
}
código Tela1 (Idêntico a tela 2 por diante):
public class Tela1 extends javax.swing.JFrame {
Botao bot = new Botao();
public Tela1() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setResizable(false);
jButton1.setText("Botão 1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Botão 2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Fechar");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(36, 36, 36)
.addComponent(jButton1)
.addGap(18, 18, 18)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 67, Short.MAX_VALUE)
.addComponent(jButton3)
.addGap(52, 52, 52))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(63, 63, 63)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(jButton3))
.addContainerGap(212, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
bot.setNomeT(getTitle());
bot.actionPerformed(evt);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
bot.setNomeT(getTitle());
bot.actionPerformed(evt);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
}
/**
* @param args the command line arguments
*/
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
// End of variables declaration
}
código classe Botao:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
/**
*
-
@author mpsilve
*/
public class Botao implements ActionListener {private String nomeT;
public String getNomeT() {
return nomeT;
}public void setNomeT(String nomeT) {
this.nomeT = nomeT;
}@Override
public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("FECHAR")) { } else { JOptionPane.showMessageDialog(null, e.getActionCommand() + " da janela " + nomeT, "Botão", -1); }
}
}