Galera, preciso de uma ajuda, to fazendo uma janelinha que consulta um banco de dados e me traz o nome e o ramal da pessoa, com o JOptionPane ele exibi normalmente, mas queria que fosse adicionado no JTable. Só que fica vazio e cai na exceção.
Valeu por enquanto.
Segue o código completo abaixo.
package pack1;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.plaf.FontUIResource;
import javax.swing.table.DefaultTableModel;
public class BuscaRamalAdvise extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JTable table;
private DefaultTableModel dtm = new DefaultTableModel();;
private ResultSetMetaData rsmd;
private Object obj[];
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
BuscaRamalAdvise frame = new BuscaRamalAdvise();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public BuscaRamalAdvise() {
setResizable(false);
setTitle("Busca Ramal");
setIconImage(Toolkit.getDefaultToolkit().getImage(BuscaRamalAdvise.class.getResource("/pack1/agenda.png")));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 306, 249);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
table = new JTable();
//table.setModel(dtm);
JLabel lblNewLabel = new JLabel("Nome");
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 11));
lblNewLabel.setBounds(76, 39, 46, 14);
contentPane.add(lblNewLabel);
textField = new JTextField();
textField.setFont(new Font("Tahoma", Font.PLAIN, 11));
textField.setBounds(132, 36, 86, 20);
contentPane.add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("Buscar");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con;
con = DriverManager.getConnection("jdbc:mysql://192.168.1.3:3306","teste","teste");
PreparedStatement pstmt;
ResultSet rs;
if(textField.getText().isEmpty()){
pstmt = con.prepareStatement("SELECT * FROM AGENDAADVISEBRASIL.CONTATO");
rs = pstmt.executeQuery();
}else{
pstmt = con.prepareStatement("SELECT * FROM AGENDAADVISEBRASIL.CONTATO WHERE NOME = ?");
pstmt.setString(1, textField.getText());
rs = pstmt.executeQuery();
}
while (rs.next()) {
rsmd = rs.getMetaData();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
dtm.addColumn(rsmd.getColumnName(i));
}
obj = new Object[rsmd.getColumnCount()];
obj[0] = rs.getString(0);
obj[1] = rs.getInt(1);
System.out.println(obj);
dtm.addRow(obj);
table.setModel(dtm);
UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Tahoma", Font.PLAIN, 11)));
//UIManager.put("OptionPane.okButtonText", new FontUIResource(new Font("Tahoma", Font.PLAIN, 51)));
JOptionPane.showMessageDialog(null, rs.getString("nome")+" está no ramal: "+rs.getInt("ramal"));
}
pstmt.close();
con.close();
} catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e) {
UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Tahoma", Font.PLAIN, 11)));
JOptionPane.showMessageDialog(null, "ERRO NA SELEÇÃO");
}
}
});
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 11));
btnNewButton.setBounds(53, 186, 89, 23);
contentPane.add(btnNewButton);
JButton btnLimpar = new JButton("Limpar");
btnLimpar.setFont(new Font("Tahoma", Font.PLAIN, 11));
btnLimpar.setBounds(162, 186, 89, 23);
btnLimpar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
textField.setText(null);
}
});
contentPane.add(btnLimpar);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 66, 280, 109);
contentPane.add(scrollPane);
//table = new JTable();
//table.setModel(dtm);
//scrollPane.setViewportView(table);
}
}