ho modificato il sorgente creando l'oggetto tabella nel main e dichiarando static i vettori rows e cols ed ora non mi da errori in compilazione, il problema è che mi si apre il frame senza niente dentro 
codice:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Color.*;
import java.net.*;
import java.sql.*;
import java.util.*;
public class struttura extends JFrame
{
private static JPanel tasti;
private static JTextArea tabella;
private static Vector cols, rows;
public static void main(String[] args) {
JFrame f = new JFrame();
Container cont = f.getContentPane();
tasti = new JPanel();
connettiAlDb();
JTable tabella = new JTable(rows, cols);
tasti = new JPanel();
tasti.setLayout(new BorderLayout());
tasti.add(tabella, BorderLayout.NORTH);
cont.add(tasti);
f.pack();
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
f.show();
}
public static void connettiAlDb() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch (Exception E) {
System.err.println("Impossibile caricare il driver");
E.printStackTrace();
}
try {
System.out.println("Connessione...");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/edicola?user=ilc0rv0");
System.out.println("Connesso: " + c);
Statement stmt = c.createStatement();
ResultSet res = stmt.executeQuery("SELECT * FROM quotidiani");
//----------------------------------------------------------
Vector cols = new Vector();
cols.addElement("testata");
cols.addElement("pr netto");
Vector rows = new Vector();
while (res.next()) {
Vector vett = new Vector();
vett.addElement(res.getString("testata"));
vett.addElement(res.getString("pr_netto"));
rows.addElement(vett);
}
//---------------------------------------------------------------
}
catch (SQLException E) {
System.out.println ("SQLException: " + E.getMessage());
System.out.println ("SQLState: " + E.getSQLState());
System.out.println ("VendorError: " + E.getErrorCode());
}
}
}