Newsgroup: it.comp.java
Titolo: JTable : un piccolo grande problema



Salve a tutti,

vorrei cominciare con il chiedere scusa fin d'ora per il mio stile
forse poco consono allo standard ma questo è il mio primo ingresso
in questo ng.

Purtroppo non ho un gran che di manualistica a disposizione ed è
solo da un mesetto che ho a che fare con Java; questo linguaggio per me
è una vera novità e naturalmente sono subito incominciate
le difficoltà.

Ho un problemino da sottoporre a chi a voglia di concentrarsi un pò
per dare una mano ad un nuovo adepto. Dunque, le cose stanno così
:

Sto realizzando una parte di un'applicazione avviata da un'applet il
cui scopo è prelevare dati da un server Informix (e fin qui qualche
problema, ma oramai risolto) e quindi visualizzarli all'utente.

Inizialmente ho creduto che avere una DialogBox con una tabella contenente
i dati in questione non fosse cosa poi così complicata, ma evidentemente
mi sbagliavo .....

Mi era sembrato di capire che fosse sufficiente definire un TableModel
da assegnare alla tabella

                   
import javax.swing.*;


                   
import javax.swing.table.*;


                   
class datamodel extends AbstractTableModel


                   
{


                     
static Object[][] data;


                     
static String[] columns;


                     
datamodel(Object[][] d, String[] c)


                    
{


                        
data = d;


                        
columns = n;


                    
}


                    
public int getColumnCount() { return columns.length; }


                    
public int getRowCount() { return data.length;}


                    
public Object getValueAt(int row, int col) {return data[row][col];}


                
};


e quindi utilizzarlo per il controllo dei dati

  MyDialogBox(aFrame owner, String aTitle, boolean modal, Object[][]
data, String[] ColumnsNames)


  {

                                                                       

.


                                                                       

.


        datamodel a = new datamodel(data,
ColumnsNames);


       
 JTable mytable = new
JTable();


        mytable.setModel(a);


        JScrollPane sc = new
JScrollPane();


        sc.add(mytable);


        add(sc);


                                                                       

.


                                                                       

. 


  }

Naturalmente, per iniziare ho cercato di fare qualcosa di estremamente
semplice, senza richiedere alla mia tabella nulla se non di comparire nella
DialogBox con dentro i dati, ma è chiaro che mi manca parecchio.

L'unica cosa che posso aggiungere è che se munisco il mio codice
di un metodo main  allora la cosa funziona, ma non appena provo ad
usare un browser cominciano i guai.

Sono sicuro che tra di voi c'è chi è in grado di fare
un pò di luce e quindi lo ringrazio fin d'ora per la sua disponibilità

                                                                                       
Ermanno


Il problema deriva dal fatto che le Swing non sono supportate dai
browsers, fino ad oggi. Prima che qualcuno mi fulmini ho l'obbligo di
dirti che puoi usaare il Java Plug-in che permete al browser di
scegliere se andare ad usaare la propria VM o una che gli dici tu. Se
usa la VM che gli dici tu allora riesci a fargli gestire le Swing
veramente bene.
Una alternativa, che andava bene su NN 4.06 e IE 4.x consiste
nell'annullare la sicurezza.
Ho provato con NN 4.5 e superiori e non sono riuscito piu' a farlo
andare, pero' su 4.06 e IE 4 andava che e' un piacere. Lo potevo fare
perche' ero su una Intranet completamente chiusa (Nel senso che non era
una Intranet aziendale mappata su Internet, bensi una semplice LAN, per
quanto estesa..).
Su internet...cono volatili per diabetici, perche' prova tu a fare una
pagina che inizia con "Scaricatevi piu' di 10 Mega di Plug-in per vedere
la mia pagina..."
Carlo Emanuele Demontis

la mia pagina..."
Meglio lasciare perdere, e simulare la tabella a colonne multiple
usando un elemento List con carattere monospaced.
Ciao,  
 P.    === Replace "punto" with "." to get my email address.

                     class datamodel extends AbstractTableModel......
Ops, per caso stai usando le Swing? :PP
-- 
ginomi
ginomi...@iname.com
http://ginomi.hypermart.net