Boa Tarde!
Pessoal é o seguinte. Tenho um cadastro que deve funcionar assim…
tem um combobox e um textfield, baseado nos dados dos dois elementos, deve ser realizada uma busca em um BD (SQL) e apresentar os dados em uma tabela. Não estou conseguindo…
Segue o codigo…
class PanelLocalizar extends JPanel{
JComboBox cbSelecao1;
JTextField tfSelecao1;
/**
*
*/
private static final long serialVersionUID = 3257847675411183155L;
public PanelLocalizar() {
this.setLayout(new BorderLayout(3, 1));
//this.add(new JLabel("Prencha os dados abaixo"), BorderLayout.NORTH);
//Montagem do panel para insercao de dados
pLocalizarDados = montaPanelLocalizarDados();
//Montagem da tabela de busca de dados
pTabelaDados = montaTabelaDados();
//Montagem do panel com botoes para localizar e abrir cadastros
pBotoesLocalizarDados = montaPanelBotoesLocalizar();
this.add(pLocalizarDados, BorderLayout.NORTH);
this.add(pTabelaDados, BorderLayout.CENTER);
this.add(pBotoesLocalizarDados, BorderLayout.SOUTH);
}
private JPanel montaPanelBotoesLocalizar() {
// TODO Auto-generated method stub
JPanel pBotoesLocalizarDados = new JPanel();
bLocalizar2 = new JButton("Localizar Cadastro");
bLocalizar2.setMnemonic(KeyEvent.VK_L);
bLocalizar2.addActionListener(new Localizar2Handler());
bAbrir = new JButton("Abrir Cadastro");
bAbrir.setMnemonic(KeyEvent.VK_A);
//bAbrir.addActionListener(new AbrirHandler());
pBotoesLocalizarDados.add(bLocalizar2);
pBotoesLocalizarDados.add(bAbrir);
return pBotoesLocalizarDados;
}
private JPanel montaTabelaDados(){
JPanel pTabelaDados = new JPanel();
tTabela = new JTable(new MeuModeloTabela());
tTabela.setPreferredScrollableViewportSize(new Dimension(773, 395));
tTabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollTabela = new JScrollPane(tTabela);
scrollTabela.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollTabela.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
pTabelaDados.add(scrollTabela);
System.out.println("entrou");
return pTabelaDados;
}
public class MeuModeloTabela extends AbstractTableModel{
/**
*
*/
private static final long serialVersionUID = 4050484512708178996L;
private String[] columnNames = {"Modulo", "Carro", "Garagem", "Telefone", "Operadora",
"Data de Instalação", "Ultima Transmição", "AVL", "TD", "Bateria",
"Microfone", "Alto-Falante", "Botão de Pânico", "Antena de GPS",
"Antena de GPRS", "Suporte para TD", "Caixa Proteção"
};
private Object[][] dados={
{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17"},
};
public int getColumnCount(){
return columnNames.length;
}
public int getRowCount() {
return dados.length;
}
public String getColumnName(int col){
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return dados[row][col];
}
public boolean isCellNotEditable(int row, int col)
{
if (col < 0)
return false;
else
return true;
}
}
/**
* @return
*/
private JPanel montaPanelLocalizarDados() {
// TODO Auto-generated method stub
JPanel pLocalizarDados = new JPanel();
GridLayout layout = new GridLayout(4, 1);
pLocalizarDados.setLayout(layout);
cbSelecao1 = new JComboBox();
tfSelecao1 = new JTextField("", 10);
pLocalizarDados.add(new JLabel("Escolha qual campo buscar:"));
pLocalizarDados.add(cbSelecao1);
pLocalizarDados.add(new JLabel("Digite o que buscar:"));
pLocalizarDados.add(tfSelecao1);
cbSelecao1.addItem("Modulo");
cbSelecao1.addItem("Carro");
cbSelecao1.addItem("Garagem");
cbSelecao1.addItem("Telefone");
cbSelecao1.addItem("Operadora");
cbSelecao1.addItem("Data de instalação");
cbSelecao1.addItem("Ultima Transmição");
cbSelecao1.addItem("AVL");
cbSelecao1.addItem("TD");
cbSelecao1.addItem("Bateria");
cbSelecao1.addItem("Microfone");
cbSelecao1.addItem("Alto Falante");
cbSelecao1.addItem("Botão de Pânico");
cbSelecao1.addItem("Antena GPS");
cbSelecao1.addItem("Antena GPRS");
cbSelecao1.addItem("Suporte TD");
cbSelecao1.addItem("Caixa de Proteção");
return pLocalizarDados;
}
class Localizar2Handler implements ActionListener{
String textoAProcurar = tfSelecao1.getText();
int ondeProcurar = cbSelecao1.getSelectedIndex();
public void actionPerformed(ActionEvent e) {
// TODO Stub de método gerado automaticamente
if(e.getSource()==bLocalizar2)
try {
Localizar2();
} catch (AtechException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public void Localizar2() throws AtechException{
String sql = "SELECT * FROM carros WHERE colunas = ondeProcurar"
+ "AND dados LIKE = %textoAProcurar%";
Connection conn = null;
Statement stmt = null;
ResultSet result = null;
try{
if(result!=null){
ResultSetMetaData metaData = result.getMetaData();
int numColunas = metaData.getColumnCount();
Vector colunas = new Vector();
boolean adiciona = true;
for(int column = 0; column < numColunas; column++){
colunas.addElement(metaData.getColumnLabel(column+1));
}
Vector linhas = new Vector();
result.beforeFirst();
while (result.next()){
Vector novaLinha = new Vector();
for (int i = 1; i <= metaData.getColumnCount(); i++){
novaLinha.addElement(result.getObject(i));
}
linhas.addElement(novaLinha);
}
setModel(new DefaultTableModel(linhas, colunas));
//setModel(MeuModeloTabela(), new MeuModeloTabela());
}
}
catch(AtechException ex){
ex.printStackTrace();
}
}
}
public Object retornaValor(int linha, int coluna) {
return this.getModel().getValueAt(linha, coluna);
}
}
E não indica erro nenhum…
Valeu…