Consulta a um banco de dados no Access e resultado em uma tabela

1 resposta
R

Oi pessoal, tudo bem?
Acontece o seguinte. Estou com o código abaixo, que faz uma pesquisa no banco de dados que está no Access e quando é gerado o resultado ele só mostra uma coluda da tabela e ainda sem o título da coluna.
Algém sabe me dizer o pq disso estar ocorrendo?
Obrigado.

Rodrigo

import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Event;
import java.awt.BorderLayout;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.KeyStroke;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JFrame;
import javax.swing.JDialog;
import javax.swing.table.TableColumn;

import java.sql.*;

import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import javax.swing.*;
import javax.swing.table.TableColumn;
import javax.swing.text.TableView;

import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.Table;


public class func {

	private JFrame jFrame = null;
	private JPanel jContentPane = null;
	private JMenuBar jJMenuBar = null;
	private JMenu fileMenu = null;
	private JMenu editMenu = null;
	private JMenu helpMenu = null;
	private JMenuItem exitMenuItem = null;
	private JMenuItem aboutMenuItem = null;
	private JMenuItem cutMenuItem = null;
	private JMenuItem copyMenuItem = null;
	private JMenuItem pasteMenuItem = null;
	private JMenuItem saveMenuItem = null;
	private JDialog aboutDialog = null;
	private JPanel aboutContentPane = null;
	private JLabel aboutVersionLabel = null;
	private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="18,5"
	private Connection conn;
	private Table table = null;
	private TableViewer tableViewer = null;
		
	public func() {
		// TODO Auto-generated constructor stub
		super();
	}
	
	private void mostrarResultados(ResultSet rs, Table tabela) throws SQLException{
		boolean dados = rs.next();
		if(!dados){
			MessageBox dialog = new MessageBox(sShell, SWT.ICON_INFORMATION);
			dialog.setMessage("Nenhum registro encontrado");
			dialog.open();
			return;
		}
		try
		{
			ResultSetMetaData rsmd = rs.getMetaData();
			int width = 0;
			for(int i=1; i<=rsmd.getColumnCount(); i++)
			{
				width = rsmd.getColumnDisplaySize(i);
				TableColumn column = new TableColumn();
				if (width<50||width>100) width=20;
					column.setWidth(width*5);
					column.setHeaderValue(rsmd.getColumnName(i));
			}
			do{
				int j=0;
				TableItem linhas = new TableItem(tabela, SWT.NULL);
				for (int i=1; i<= rsmd.getColumnCount(); i++)
				{
					linhas.setText(j++,rs.getString(i));
				}
			}while (rs.next());
		}
		catch(SQLException sqlex){sqlex.printStackTrace();}
	}
	private void createTable()
	{
		Statement statement;
		ResultSet result;
		Table table = new Table(sShell, SWT.NULL);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		table.setBounds(new Rectangle(0, -1, 752, 359));
		tableViewer = new TableViewer(table);
		try
		{
			String query = "SELECT * FROM Empregados";
			statement = conn.createStatement();
			result = statement.executeQuery(query);
			mostrarResultados(result,table);
			statement.close();
		}
		catch(SQLException sqlex){sqlex.printStackTrace();}
	}
	public static void main(String args[])
	{
		Display display = Display.getDefault();
		func thisClass = new func();
		thisClass.createSShel();
		thisClass.sShell.open();
		
		while (!thisClass.sShell.isDisposed())
		{
			if(!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
	private void createSShel()
	{
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			conn = DriverManager.getConnection("jdbc:odbc:nome_do_banco");
		}
		catch(ClassNotFoundException cnfe)
		{
			System.out.println(cnfe.getMessage());
		}
		catch(SQLException sqlex)
		{
			System.out.println(sqlex.getMessage());
		}
		sShell = new Shell();
		sShell.setText("Consulta ao Cadastro de Funcionários");
		createTable();
		sShell.setSize(new org.eclipse.swt.graphics.Point(760,400));
		
	}
	

}

1 Resposta

R

RESOLVIDO!!

Criado 10 de maio de 2008
Ultima resposta 14 de mai. de 2008
Respostas 1
Participantes 1