Entra

View Full Version : Realizzazione finestra con tabella


foxmolder5
13-06-2007, 13:06
Devo realizzare una finestra contenente una tabella ( inizialmente avente campi vuoti) in cui andrò ad inserire dei dati da sottomettere quindi al db.
Sto riscontrando problemi con la JTable e con la disposizione dei campi nella finestra.
La finestra dovrebbe avere questa struttura

http://img248.imageshack.us/img248/5421/schermataqi6.jpg (http://imageshack.us)

in cui la parte azzurra e rossa conterrà dei dati immessi al momento della creazione della finestra, ed invece la parte gialla e verde conterrà i dati da immettere.
mi potete dare qualche consiglio x favore?
anche perchè il numero di righe gialle non può essere fisso ma lo devo decidere al momento della realizzazione della finestra in base ad un parametro.
grazie a tutti

foxmolder5
13-06-2007, 17:24
Sono riuscito a fare una cosa del genere ma ora ho due problemi. Innanzitutto devo colorare alcune caselle della colonna ( e questo è quello che mi preoccupa di meno) ma soprattutto nella finestra non mi viene visualizzato il titolo delle colonne. vi posto il codice:


String[] nomiColonne = {"colonna1" , "colonna2" ,
"colonna3", "colonna4" , "colonna5" ,
"colonna6" , "colonna7" , "colonn8" };

pulsanteOk = new JButton("Crea");
pulsanteAnnulla = new JButton("Annulla");

finestraPrincipale = new JFrame("Inserimento Dati") ;

/***** Creazione ed impostazione del pannello principale ****/

/***** DEFINIZIONE PANNELLO SUPERIORE *****************/

JLabel label0 = new JLabel(" Inserimento Dati ");
JLabel label1 = new JLabel(" ");
JLabel label2 = new JLabel(" NOME1 : "+ this.nome);
JLabel label3 = new JLabel(" NOME2 : "+ this.nome2);
JLabel label4 = new JLabel(" NOME3 : "+ this.nome3);
JLabel label5 = new JLabel(" ");
label0.setFont(new java.awt.Font("Tahoma",1,15));
label2.setFont(new java.awt.Font("Tahoma",0,14));
label3.setFont(new java.awt.Font("Tahoma",0,14));
label4.setFont(new java.awt.Font("Tahoma",0,14));
JPanel pannelloSuperiore = new JPanel();
pannelloSuperiore.setLayout(new GridLayout (6,1));
pannelloSuperiore.add(label0);
pannelloSuperiore.add(label1);
pannelloSuperiore.add(label2);
pannelloSuperiore.add(label3);
pannelloSuperiore.add(label4);
pannelloSuperiore.add(label5);
finestraPrincipale.add("North",pannelloSuperiore);

/***** DEFINIZIONE PANNELLO CENTRALE ******************/

// impostazione struttura dati
this.importi = new String[this.durata_f + 1][this.nomiColonne.length] ;
this.setImportiPiano();

// impostazione tabella
this.tabella = new JTable(importi,nomiColonne) ;
this.tabella.setPreferredScrollableViewportSize(new Dimension(500, 70));
this.tabella.setFillsViewportHeight(true);
//this.tabella.s
this.scrollPane = new JScrollPane(tabella);
add(this.scrollPane);


this.finestraPrincipale.add("Center", this.tabella);

/***** DEFINIZIONE PANNELLO INFERIORE ******************/

JPanel pannelloInferiore = new JPanel();
pannelloInferiore.setLayout(new GridLayout(1,2));
pannelloInferiore.add(pulsanteOk);
pannelloInferiore.add(pulsanteAnnulla);
this.finestraPrincipale.add("South", pannelloInferiore);

/***** DEFINIZIONE LOOK FINESTRA ************************/

try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Impossibile impostare lo stile "+ e);
}

//Mostra la finestra
this.finestraPrincipale.pack();
this.finestraPrincipale.setVisible(true);



(importi è una matrice di stringhe inizializzate al valore " 0 " definita public all'interno della classe a cui appartiene questa parte di codice).
sapete aiutarmi? grazie

foxmolder5
14-06-2007, 12:04
up, qualcuno può aiutarmi x favore?

a2000.1
14-06-2007, 21:55
:muro: excel no eh ? :muro:

foxmolder5
14-06-2007, 22:01
:muro: excel no eh ? :muro:

va beh, cmq ho risolto:D
l'avrei fatto volentieri con exel....ma il prof non è della stessa idea:D

a2000.1
14-06-2007, 22:04
pansche' l'è un quaion :p

a2000.1
14-06-2007, 22:10
va beh, cmq ho risolto:D
l'avrei fatto volentieri con exel....ma il prof non è della stessa idea:D

e poi che c. hai risolto :rolleyes:

quando i dati li dovrai sommare, dividere , togliere spazi, segare a due a due, filtrare, validare, accorpare, formattare :eek:

a regà ma come c. ve lo devo dire che la classe di controllo automazione più potente che ci sia si chiama Excel.Worksheet :cool:

è il superset di tutti i controlli :sborone:

P.S.
confermo il 'quaion' :O

foxmolder5
14-06-2007, 22:15
e poi che c. hai risolto :rolleyes:


a regà ma come c. ve lo devo dire che la classe di controllo automazione più potente che ci sia si chiama Excel.Worksheet :cool:


non la conoscevo. ti ringrazio

diciamo che ho notato di aver aggiunto la tabella e non lo scrollPanel (e così si vedono anche i nomi delle colonne). per il colore so come fare. inoltre ho inserito un metodo che tramite l'apposito metodo già esistente in java mi estrae tutti i dati inseriti nella tabella, li memorizzo quindi in una matrice e a quel punto il gioco è fatto e posso fare tutto ciò che voglio.