questo è il mio codice, ancora in fase embrionale, di main.java:

codice:
import java.net.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.lang.ArrayIndexOutOfBoundsException;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.JLabel;
import javax.swing.table.*;

/*
 * main.java
 * Created on 11-ott-2009, 11.28.21
 */

/**
 * @author 
 */
public class main extends javax.swing.JFrame {

    /** Creates new form main */
    URL URLImmagine;
    ImageIcon imgBandiera;
    public main() {
        //aggiunto da me per testare immagine in jlable1
        try
        {
            URLImmagine = new URL("http://web1.trophymanager.com/flags/it.png");
            imgBandiera = new ImageIcon(URLImmagine);
        }
        catch(MalformedURLException excImm)
        {
            JOptionPane.showMessageDialog(null, excImm.toString());
        }
        // fine aggiunto da me
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setIcon(imgBandiera);
        jLabel1.setText("jLabel1");

        jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"Prova", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null}
            },
            new String [] {
                "Nome", "Squadra", "Naz", "Alt", "Pes", "Ruo", "Rou", "Sti", "Stato", "Trasferimento", "For", "Res", "Vel", "Marl", "Con", "Imp", "Pos", "Pas", "Cro", "Tec", "Tes", "Fin", "C.P", "Cancella"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.Object.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.Float.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Object.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(180);
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(150);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(40);
        jTable1.getColumnModel().getColumn(2).setCellEditor(new PanelEditor());
        jTable1.getColumnModel().getColumn(2).setCellRenderer(new PanelRender());
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(4).setPreferredWidth(40);
        jTable1.getColumnModel().getColumn(5).setPreferredWidth(35);
        jTable1.getColumnModel().getColumn(6).setPreferredWidth(40);
        jTable1.getColumnModel().getColumn(7).setPreferredWidth(50);
        jTable1.getColumnModel().getColumn(8).setPreferredWidth(80);
        jTable1.getColumnModel().getColumn(9).setPreferredWidth(80);
        jTable1.getColumnModel().getColumn(10).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(11).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(12).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(13).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(14).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(15).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(16).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(17).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(18).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(19).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(20).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(21).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(22).setPreferredWidth(30);
        jTable1.getColumnModel().getColumn(23).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(23).setCellEditor(new PanelEditor());
        jTable1.getColumnModel().getColumn(23).setCellRenderer(new PanelRender());

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 617, Short.MAX_VALUE)
                    .addComponent(jLabel1))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 309, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
    * @param args the command line arguments
    */
    
    public void modTabella()
    {
        jTable1.setModel(new DefaultTableModel());
    }

    public static void main(String args[])
    {
        //debug
        Giocatore giocatore1 = new Giocatore("26681189");
        //fine debug
        // estrazione dell'id da url del tipo http://trophymanager.com/showprofile...yerid=00000000
        String id = "";
        try
        {
            String arg = args[0];
            id = arg.substring(49);
        }
        catch(ArrayIndexOutOfBoundsException eccArgs)
        {            
        }
        try
        {
            ServerSocket welcomeSocket = new ServerSocket(8813);
            java.awt.EventQueue.invokeLater(new Runnable()
            {
                public void run()
                {
                    new main().setVisible(true);
                }
            });
            while(true)
            {
                Socket connectionSocket = welcomeSocket.accept();
		ObjectInputStream inFromClient = new ObjectInputStream(connectionSocket.getInputStream());
		connectionSocket.close();
            }
        }
        catch(IOException exc)
        {
            try
            {
                Socket connectionSocket = new Socket("localhost",8813);
                ObjectOutputStream outToServer = new ObjectOutputStream(connectionSocket.getOutputStream());
		outToServer.writeBytes(id+'\n');
		outToServer.flush();
		connectionSocket.close();
            }
            catch(IOException excclient)
            {
                JOptionPane.showMessageDialog(null, "Errore collegamento a socket "+exc);
            }
        }
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables

}
nel progetto ci sono altre quatto classi: Giocatore, DataSadenza, PanelRender e PanelEditor e lo scopo del programma è di prendere informazioni da internet attraverso la parserizzazione di pagine web e salvarli in un file e conseguentemente visualizzarle a video in una jtable.

l'interfaccia è stata creata con il gui builder di NetBeans

se io vado a fare in staic void main jTable1.getModel(); mi da l'errore "non-static variable jTable1 cannot be referenced from a static context"

ho provato anche a creare un metodo, come vedete in modTabella, fuori allo static void main e richiamarlo in quest'ultimo ma da sempre lo stesso problema.

ho provato anche a inserire l'oggetto che crea quando fa new main().setVisible(true); in una variabile ma mi dice tipi incompatibili poichè questo new main è void, possibile?

dovrei ridisegnare io l'interfaccia e lasciare perdere NetBeans?