Estou com um breve problema, aqui que um de meus frames não está fechando corretamente, quando ele fecha deveria abrir outro frame, porém está acontecendo de fecharem os dois, meu defaultCloseOperation está definido como Dispose_On_Close, e peculiarmente eu tenho um botão retornar, tanto esse botão quando o windowClosing compartilham da mesma função e o botão funciona mas o evento da janela não.
(Para ser mais especifico, ele fecha o frame, porém acontece alguma coisa com o segundo que ele rapidamente abre, aí antes mesmo de carregar o conteúdo ele é fechado.
É difícil adivinhar como foi implementado.
Posta seu código.
public class Users_Visualization extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
public static void main(String[] args) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) { // Para mudar o Design da interface
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| javax.swing.UnsupportedLookAndFeelException ex) {
System.err.println(ex);
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Users_Visualization frame = new Users_Visualization();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Users_Visualization() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
verify();
}
});
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 800, 600);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnRetornar = new JMenu("Retornar");
mnRetornar.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
verify();
}
});
menuBar.add(mnRetornar);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
JTable jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(new DefaultTableModel(new Object[][] {}, new String[] { "ID", "Usu\u00E1rio", "Senha" }));
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout
.createSequentialGroup().addContainerGap().addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(15, Short.MAX_VALUE)));
layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout
.createSequentialGroup().addContainerGap().addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(14, Short.MAX_VALUE)));
pack();
String sql = "SELECT id, login, password FROM DB_Estoque.Login_Table";
Connection conn = Conexao.getConnection(); // Abrindo conexão
try {
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.setNumRows(0);
while (rs.next()) {
model.addRow(new Object[] {
// retorna os dados da tabela do BD, cada campo e um coluna.
rs.getString("id"), rs.getString("login"), rs.getString("password") });
}
Conexao.Fechar_Conexao(conn, ps, rs); // Fechando conexão
} catch (SQLException e) {
e.printStackTrace();
}
}
public void verify() {
Tela_ROOT.contador = 0;
Tela_ROOT frame = new Tela_ROOT();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Users_Visualization.this.dispose();
}
}
Apaga essa linha.
cara eu não tinha visto essa linha kkkk
Valeu!
1 curtida