JTable

5 respostas
R

Olá Pessoal, sou iniciante em Java e estou encontrando certa dificuldade.
Estou desenvolvendo uma interface em Java no Eclipse (já estou utilizando a Visual class) para realizar consultas ao banco de dados que está no Access.
A minha interface é composta de uma JComboBox, JTextField, um botão e uma JTable, fora é claro dos textos que eu digitei. O funcionamento ocorre da seguinte maneira:
Dentro da JComboBox existem várias opções e quando seleciono, somente, uma o JTextField é habilitada. Com isso, tenho os parâmetros para a seleção e assim realizar a consulta.
O problema vem agora: eu já digitei o código td certo da consulta a tabela, mas na hora que eu clico no botão o resultado da consulta só está sendo mostrado no console e não na tabela. O que eu quero é que o resultado seja mostrado na tabela.
Eu to quebrando a cabeça, lendo, pesquisando bastante, mas até agora não consegui.
Será que alguém pode me ajudar?

Obrigado.
Rodrigo

5 Respostas

M

Acho que está esquecendo-o de adicionar ao seu formulário!!Posta o código ai!!Pode haver n motivos!!

R

o código do botao que faz a seleção no banco eh esse:

/**

* This method initializes jButton	

* 	

* @return javax.swing.JButton	

*/

private JButton getJButton() {

if (jButton == null) {

jButton = new JButton();

jButton.setBounds(new Rectangle(365, 160, 112, 32));

jButton.setToolTipText(Clique aqui para realizar a consulta);

jButton.setFont(new Font(Arial, Font.BOLD, 16));

jButton.setText(Pesquisar);	

jButton.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent e) {

if(jComboBox.getSelectedItem().equals(""))

{

JOptionPane.showMessageDialog(null,Selecione um tipo de consulta e, no caso de Funcionários Ativos, digite o nome do cargo do funcionário,MENSAGEM DE ERRO,0);

}

if(e.getSource()==jButton)

{

Statement MeuState;

String Url = jdbc:odbc:nome_do_banco;

try

{

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

Connection Conexao = DriverManager.getConnection(Url);

MeuState = Conexao.createStatement();

if(jComboBox.getSelectedItem().equals(Todos Funcionários))

{

ResultSet resultSet = MeuState.executeQuery(SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados ORDER BY LOTACAO);
ResultSetMetaData metaData = resultSet.getMetaData();
							int numberOfColumns = metaData.getColumnCount();
					
							for(int i=1; i <= numberOfColumns; i++)
								System.out.println(metaData.getColumnName(i));
							System.out.println();
					
							while(resultSet.next())
							{
								for(int i=1; i <= numberOfColumns; i++)
									System.out.println(resultSet.getObject(i));
								System.out.println();
							}
						}
						if(jComboBox.getSelectedItem().equals("Funcionários Aposentados"))
							{
								ResultSet resultSet = MeuState.executeQuery("SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados WHERE LOTACAO LIKE 'Aposentado'");
						
								ResultSetMetaData metaData = resultSet.getMetaData();
								int numberOfColumns = metaData.getColumnCount();
						
								for(int i=1; i <= numberOfColumns; i++)
									System.out.println(metaData.getColumnName(i));
								System.out.println();
						
								while(resultSet.next())
								{
									for(int i=1; i <= numberOfColumns; i++)
										System.out.println(resultSet.getObject(i));
									System.out.println();
								}
							}
						if(jComboBox.getSelectedItem().equals("Funcionários Desligados"))
						{
							ResultSet resultSet = MeuState.executeQuery("SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados WHERE LOTACAO LIKE 'Desligado'");
					
							ResultSetMetaData metaData = resultSet.getMetaData();
							int numberOfColumns = metaData.getColumnCount();
					
							for(int i=1; i <= numberOfColumns; i++)
								System.out.println(metaData.getColumnName(i));
							System.out.println();
					
							while(resultSet.next())
							{
								for(int i=1; i <= numberOfColumns; i++)
									System.out.println(resultSet.getObject(i));
								System.out.println();
							}
						}
					}
					catch(ClassNotFoundException ex)
					{
						JOptionPane.showMessageDialog(null,"Driver JDBC-ODBC não encontrado","Mensagem",1);
						System.exit(0);
					}
					catch(SQLException ex)
					{
						JOptionPane.showMessageDialog(null,"Erro de SQL","Mensagem",1);
					}
				}
			}
		});
	}
	return jButton;
}
M

Sinceramente, busque exemplos pela net!!Não vi nada relacionado a jtable no código!!

R

Realmente, nesse código não tem nenhuma parte que faz referêncioa a JTable. Entretanto, quando construo a tabela, e tento atribuir o codigo para que possa ser exibido o resultado da consulta nela, não obtenho sucesso. Pra mim, o local onde devo atribuir esse codigo eh no lugar do System.out.println, estou certo?
Gostaria de saber qual o código que devo colocar.
Obrigado.
Desculpa, mas eh que eu sou novo em Java e estou encontrando algumas dificuldades e estou procurando superar cada uma.

Rodrigo

ViniGodoy

Oi,

Antes de tudo, leia o tópico: http://www.guj.com.br/posts/list/50115.java

Não é no System.out.println. Você deve escrever uma classe filha de AbstractTableModel.
É ela que diz que tipo de dado será exibido na tabela.

Eu sempre recomendo esses tutoriais aqui:
http://www.informit.com/articles/article.aspx?p=332278
http://www.informit.com/articles/article.aspx?p=332278

Eles ensinam direitinho a manipular uma tabela. :wink:

Criado 7 de maio de 2008
Ultima resposta 8 de mai. de 2008
Respostas 5
Participantes 3