PDA

View Full Version : JTABLE DINAMICHE


Gange_8
25-02-2009, 17:24
Salve sono nuovo del forum, quindi chiedo scusa a priori se dovessi commettere qualche errore...

Vi spiego il mio problema:

Ho creato un programma capace di gestirmi una connessione tra java e un DB acces.
Ho cercato di far inserire in una JTable i vari risultati di una query ora i problemi che ho riscontrato sono 2:

1) Non mi esegue tutte le query, ad esempio se eseguo una query che mi deve visualizzare tutti i campi presenti nella tabella del DB la esegue se invece voglio eseguire una query che mi visualizzi solo alcuni campi mi da un errore.

2) L'altro problema riguarda la dinamicità delle colonne della JTable. Mi spiego meglio, se metto manualmente i nomi delle colonne non mi da problemi se invece cerco di crearli al momento eseguendo la query non mi visualizza assolutamente niente
posto il codice java coś che si possa capire meglio il problema

mport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;

public class Paperino extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
public JTable jTable1;
private JScrollPane jScrollPane1;
private JTextArea jTextArea1;
private JScrollPane jScrollPane2;
private JButton esegui;
private JButton azzera;
private JPanel contentPane;
public Vector header;
public Vector dati;

public Paperino()
{
super();
initializeComponent();
this.setVisible(true);
}

private void initializeComponent()
{
header=new Vector();
header.addElement("id");
header.addElement("localizzazione");
header.addElement("tipologia");
header.addElement("marca");
header.addElement("netbiosname");
dati=new Vector();
jTable1 = new JTable(dati,header);
jScrollPane1 = new JScrollPane();
jTextArea1 = new JTextArea("inserisci qui la query ...");
jScrollPane2 = new JScrollPane();
esegui = new JButton();
azzera = new JButton();
contentPane = (JPanel)this.getContentPane();
jScrollPane1.setViewportView(jTable1);
jScrollPane1.setEnabled(false);
jScrollPane2.setViewportView(jTextArea1);

esegui.setText("esegui");
esegui.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
esegui_actionPerformed(e);
}

});

azzera.setText("azzera");
azzera.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
azzera_actionPerformed(e);
}

});

contentPane.setLayout(null);
addComponent(contentPane, jScrollPane1, 7,9,465,361);
addComponent(contentPane, jScrollPane2, 7,375,376,126);
addComponent(contentPane, esegui, 390,472,83,28);
addComponent(contentPane, azzera, 390,435,83,28);

this.setTitle("leggi dal db");
this.setLocation(new Point(12, 27));
this.setSize(new Dimension(499, 545));
}

private void addComponent(Container container,Component c,int x,int y,int
width,int height)
{
c.setBounds(x,y,width,height);
container.add(c);
}

private void esegui_actionPerformed(ActionEvent e)
{
jTable1.updateUI(); //aggiorna la jtable
String QUERY=jTextArea1.getText();
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url="jdbc:odbc:ICT-MN";

int i;
int conta=0;

if(QUERY.length()>0){
try
{
Class.forName(driver);
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
ResultSet rslt = stmt.executeQuery (QUERY);
ResultSetMetaData rsmd=rslt.getMetaData();
i=rsmd.getColumnCount(); //trova il numero di colonne
dati.removeAllElements(); //toglie i risultati precedenti
while(rslt.next())
{
Vector riga=new Vector();
for(int j=1;j<=i;j++)
{
riga.addElement(rslt.getString(j));
}
dati.addElement(riga);
conta++;
}
//stmt.close();
//rslt.close();
//conn.close();
}
catch(Exception ez)
{
ez.printStackTrace();
JOptionPane.showMessageDialog(this,"errore: "+ QUERY,"errore SQL"
,JOptionPane.QUESTION_MESSAGE);
}
} //if query>0
else{
jTextArea1.setText("Devi inserire una query \n");
}

}

private void azzera_actionPerformed(ActionEvent e)
{
jTextArea1.setText("");
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try
{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}
catch (Exception ex)
{
System.out.println("Failed loading L&F: ");
System.out.println(ex);
}
new Paperino();
}
}

cionci
26-02-2009, 07:58
Thread chiuso
|
V
http://www.hwupgrade.it/forum/showthread.php?t=1649196