Newsgroup: it.comp.java
Titolo: [HELP] JTable maledetta!

Salve a tutti,
sto facendo un programma con interfaccia grafica (SWING); dovrei fare una
cosa che dovrebbe essere semplicissima (per chi la sa fare ;-) ):
Creare una tabella (gia fatto*) la quale abbia una solo colonna che sia di
sfondo grigio, non editabile e con allineamento (dei dati contenuti)
centrale;
*
String[] col = {"colonna1","colonna2","colonna3"};
Object[][] cel = new Object[10][3];
JTable tab = new JTable(cel,col);
come si fa??
grazie.
--
.·´¯`·.¸¸.·´¯`·.¸¸.·>>> Psycotony <<<·.¸¸.·´¯`·.¸¸.·´¯`·.
   #email: 
psyc...@libero.it
   #C6: psycotony
   #Site: 
http://digilander.iol.it/Psycotony
"L'amore ci elargisce la più straordinaria, ineffabile esperienza...
giacché infatti noi siamo nati per amare".

Ciao Psycotony,
le JTable sembrano più complesse di quanto in realtà non sono.
cerca di capire fin da subito come lavorano loro e tutto il resto degli
oggetti SWING.
Tutti i componenti SWING, delegano: il rendering delle loro informazioni,
le loro informazioni e le selezioni a dei model.
Questi model sono delle interfacce.
Se vui cambiare le proprietà di una cella, basta che ti fai dare dalla
JTable, il suo TableColumnModel, da questo ottieni il TableColumn relativo
alla colonna che ti interessa e da quest'ultimo ottieni il TableCellEditor.
La sintassi completa purtroppo non me la ricordo, perchè é diverso tempo
che non lavoro + in Java (purtroppo la crisi del settore......... P.S.
sapete se c'è qualche società che richiede sviluppatori?)
Comunque non è difficile ne tedioso, ci vuole solo un pò di volontà nel
seguire la documentazione che SUN mette a disposizione.
Bye
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ne tedioso,
Questa poi e' grossa.
Scusate il tono, che vorrebbe essere scherzoso e non polemico.
Quello che voglio dire e' che, a mio modestissimo avviso, Java e'
un linguaggio fantastico, ma il package Swing non e' all'altezza.
Io faccio sempre il paragone con java.net.*: quello e' grande software.
Un qualsiasi programmatore di livello medio-basso riesce con pochissime
righe di codice a gestire mega-casini come quelli relativi alla
comunicazione
TCP/IP.
Ma swing, cribbio, fa pieta'. Per cambiare l'allineamento di una cella
guarda che casino.
Un altro piccolo esempio: JTable non e' scrollabile e la devo sempre
inserire
in uno scroll pane. Ma che diamine me ne faccio di una tabella che non fa
lo scrolling in automatico? E gli esempi potrebbero continuare per ore.
Io spero sempre in una rifondazione del package grafico che lo renda
adeguato
a quel grandioso linguaggio di programmazione che e' Java.
Ciao.
Franco

 ha scritto nel messaggio
news:b97s4f$g9elu$1...@ID-100339.news.dfncis.de...



Secondo me vi sbagliate,
swing e' complesso solo perche' permette di fare cose complesse.

 swing e' complesso solo perche' permette di fare cose complesse.
OK. Io, nel mio piccolo, ho creato una JTable che contiene altre JTable come
renderer. Sarebbe forse impossibile con molti altri linguaggi.
Se pero' voglio fare cose semplici, devo avere un modo semplice per farlo.
Il codice che ho scritto per il JTableRenderer  non e' molto piu' complesso
di quello che si deve scrivere per cambiare il font di una colonna!!!
Con swing e' difficile fare anche le stupidate.
Ciao
Franco

 Con swing e' difficile fare anche le stupidate.
Certo, ma la versatilita' delle JTable e' dovuta a questo.
Io penso che la cosa fondamentale e' capire bene il pattern alla base (MVC)
capito quello credo che tutto diventi piu' semplice.
http://www.javaworld.com/javaworld/jw-04-1998/jw-04-howto.html

 
http://www.javaworld.com/javaworld/jw-04-1998/jw-04-howto.html
Ma i pattern non devono essere abusati, come dice Robert C. Martin in
http://www.objectmentor.com/resources/articles/inheritanceVsDelegation
"Design patterns are wonderful things. They can help you with many design
problems.
But the fact that they exist does not mean that they should always be used.
In this case,
while TEMPLATE METHOD was applicable to the problem, its use was not
advisable. The
cost of the pattern was higher than the benefit it yielded."
In swing, secondo me, che sono un buzzurro dell'informatica, si abusa
dell'MVC.
(Comunque grazie per il link, mi sembra molto interessante).
Swing mi sembra il classico esempio di contraddizione del principio dell'XP
"La cosa piu' semplice che possa funzionare".
Ciao
Franco

 "La cosa piu' semplice che possa funzionare".
Non sono un esperto di extreme programming, ma da quel poco che ne so non mi
sembra che ci siano evidenti conflitti.
Posso dirti che nell'XP come in altri contesti il riutilizzo e'
fondamentale, e i componenti swing mi sembrano, proprio in virtu' della
possibilita'
di cambiargli solo il modello dei dati, o solo il layer di visualizzazione,
molto ma molto riutilizzabili
Ciao
Pietro

Usare una riga di codice per rilevare il Model di una colonna č difficile
e tedioso?
Trovi stupida la logica MVC delle SWING?
Il fatto di avere uno JScrollPane generico per tutto, piuttosto che un
oggetto che si porta sempre dietro una montagna di codice spesso inutile,
lo trovi cosě scemo?
Ma si in fondo ci vuole una laurea per scrive container.add(new
JScrollPane(nomeComponente));
Il package net ti permette con poche righe di fare la tua chat?
Ma devi fare il programmatore o il risparmiatore di righe?
Le pappe belle e fatte spesso limitano il campo di azione, te ne accorgi
quasi subito, come tenti di fare applicazioni piů serie, vedi subito i
limiti di questi pachage, che spesso dimostrano di essere anche molto poco
modulabili.
Gli oggetti poi possono esser estesi e personalizzati proprio per venire
incontro alle esigenze delgli sviluppatori.
Spesso utilizzi JTable che fanno certe cose ? Fatti una libreria che ti
semplifichi il lavoro.
La programmazione OOP forse č l'unica vera cosa bella che ci č rimasta a
noi programmatori e trovo che la logica delle MVC dimostri che c'č ancora
gente cazzuta che sa fare strumenti potenti.


 modulabili.
java.net
 e' poco modulabile?
Il problema e' che swing ti permette di inserire bottone come renderer di
una
tabella che e' l'editor di un JTree, ma a chi serve veramente tutto cio'?
Io faccio schifoso "gestionale", non giochi in 3d. Nel 99% dei casi mi
serve,
ad esempio, bloccare una colonna di una JTable, o nasconderne alcune colonne
a richiesta. Inoltre mi servirebbe un DefaultTableModel legabile ad un set
di record preso da un DB. Queste, per chi fa gestionale, penso siano cose
ovvie. Eppure swing non le fa. Certo, mi sono fatto la mia libreria
personalizzata che
svolge questi compiti, ma ho dovuto perdere un sacco di tempo,
distogliendomi
dai veri problemi dei miei programmi.
Ciao
Franco

 in assembler.
Questa e' la filosofia delle librerie, non dell'oo.
ciao
uL