ciao ragazzi vi presento il mio problema:
in pratica con questo codice ottengo questa tabella:
codice:
public void scheda()
{ GridBagConstraints c = new GridBagConstraints();
if (ris==0){
c.gridx=0;//colonna unica
c.gridy=2;//riga 2
}
else { c.gridx=0;
c.gridy=3;}
c.weightx = 1.0;
c.weighty = 1.0;
c.fill = GridBagConstraints.BOTH;
//Hashtable tabella = new Hashtable();
Object [][] tabella1 = new Object[150][8];
// HashMap tabella = new HashMap();
String[] nome ={"nome", "tipo", "scopo", "data estrazione","provenienza", "client/server", "frequenza utilizzo", "codice"};
JTable tabb = new JTable (tabella1, nome);
//tabb.setPreferredSize(new Dimension(10,500));
tabella1[1][2]= "5";
p_job.add(tabb,c);
// tab.setRowSelcectionInterval(10,10);
JScrollPane scroll = new JScrollPane(tabb);
p_job.add(scroll,c);
this.validate();
}
public Record[] web(int ris2)
{ try {
GridBagConstraints c = new GridBagConstraints();
//coordinate directory
if (ris2==1){
c.gridy=1;
c.fill = GridBagConstraints.BOTH;}
//coordinate singola pagina
else {
c.gridx=0;
c.gridy=0;c.fill = GridBagConstraints.BOTH;
}c.weighty = 0.2;
try{
tabellaPagina tb = new tabellaPagina("");
int i=0;
//questo controllo verifica se è stato scelto un singolo file o una directory
//identificazione singola pagina
if (ris2 == 0) {t=1;
Record[] rr = new Record[t];//record che richiama i dati dal database
rr = tb.run(nomefile);//in tb.run(nomefile) ci sono i valori del database
Record [] r = new Record[t];//record per la visualizzazione nella tabella
r[0] = new Record();
r[0].setSelezionato(true); //seleziona il flag
r[0].setNome(rr[0].getNome()); //seleziona il nome del file
r[0].setNomeFile(rr[0].getNomeFile()); //seleziona il nome della pagina web
r[0].setPath(rr[0].getPath());//seleziona la directory in cui si trova il file
r[0].setNumero(rr[0].getNumero());//conta il numero di file in quella directory
r[0].setCodice(rr[0].getCodice());//visualizza il codice
r[0].setData(rr[0].getData());//visualizza la data di estrazione
Object[][] data = new Object[r.length][];
//questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
for ( i = 0; i < r.length; i++)
{
data[i] = r[i].getObjects ();
}
MyTableModel my = new MyTableModel();
my.MyTable(data);
final JTable tab = new JTable(my);
p_job.add(tab,c);
rr2 =rr;
TableColumn column = null;
column = tab.getColumnModel().getColumn(6);
my.setUpSportColumn(tab,column);
tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
tab.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int[] selected = tab.getSelectedColumns();
for (int i = 0; i < selected.length; i++) {
if (selected[i] == 6) {//viene attivato solo per la sesta colonna
try{
JFrame f = new JFrame();
JPanel p = new JPanel();
tabellaPagina tb = new tabellaPagina("");
int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
//stampa il rispettivo codice
JTextArea t = new JTextArea(rr2[0].getCodice(),30,35);
JScrollPane s = new JScrollPane(t);
f.setTitle("codice");
f.getContentPane().add(s);
f.setSize(400,440);
f.setLocation(470, 250);
f.setVisible(true);
}
catch (IllegalArgumentException ee) {}
catch (ArrayIndexOutOfBoundsException e1) {}
catch (NullPointerException e2) {}
}
}
} });
JScrollPane scroll = new JScrollPane(tab);
p_job.add(scroll,c);
//scheda();
}
if (ris2 == 1) { t=3;
//tupla che rappresenta la pagina con i suoi rispettivi campi
Record[] rr = new Record[t];
rr = tb.run(nomefile);
Record [] r = new Record[t];
while (i!=t){
r[i] = new Record();
r[i].setSelezionato(true); //seleziona il flag
r[i].setNome(rr[i].getNome()); //seleziona il nome del file
r[i].setNomeFile(rr[i].getNomeFile()); //seleziona il nome della pagina web
r[i].setPath(rr[i].getPath());//seleziona la directory in cui si trova il file
r[i].setNumero(rr[i].getNumero());//conta il numero di file in quella directory
r[i].setCodice(rr[i].getCodice());//visualizza il codice
r[i].setData(rr[i].getData());//visualizza la data di estrazione
i++;
}
Object[][] data = new Object[r.length][];
//questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
for ( i = 0; i < r.length; i++)
{
data[i] = r[i].getObjects ();
}
MyTableModel my = new MyTableModel();
my.MyTable(data);
final JTable tab = new JTable(my);
p_job.add(tab,c);
rr2 =rr;
TableColumn column = null;
column = tab.getColumnModel().getColumn(6);
my.setUpSportColumn(tab,column);
tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
tab.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int[] selected = tab.getSelectedColumns();
int selectedrow = tab.getSelectedRow();
//boolean isSelected = false;
for (int i = 0; i < selected.length; i++) {
if (selected[i] == 6) {//viene attivato solo per la sesta colonna
//isSelected = true;
try{
JFrame f = new JFrame();
JPanel p = new JPanel();
tabellaPagina tb = new tabellaPagina("");
int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
n_cod=selectedrow;
JTextArea t = new JTextArea(rr2[n_cod].getCodice(),30,35); //stampa il rispettivo codice
JScrollPane s = new JScrollPane(t);
f.setTitle("codice");
f.getContentPane().add(s);
f.setSize(400,440);
f.setLocation(470, 250);
f.setVisible(true);
}
catch (IllegalArgumentException ee) {}
catch (ArrayIndexOutOfBoundsException e1) {}
catch (NullPointerException e2) {}
}
}
} });
JScrollPane scroll = new JScrollPane(tab); p_job.add(scroll,c);
// scheda();
}
}
catch (SQLException ex) {
ex.printStackTrace();
} catch (ParserConfigurationException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SAXException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
catch (NullPointerException e){}
catch (ArrayIndexOutOfBoundsException e){}
this.validate();
scheda();
return rr2;
}
ottengo la tabella che sta in allegato,
il metodo scheda() che cè nel codice sopra di colore rosso rappresenta la tabella inferiore, mentre web(), di colore verde la tabella superiore...e fin qui niente di male...segue nel secondo messaggio