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));
}
}