Newsgroup: it.comp.java
Titolo: Ancora un suggerimento...

Ciao a tutti!
Di nuovo a chiedervi un aiuto...
 
Da GUI lancio un foglio di lavoro Excel.
Questo foglio conterrà i dati di un nuovo cliente compreso un numero 
progressivo che sarà poi il nome del file .xls salvato.
Per facilitare l'utente serializzo l'ultimo numero Cliente in modo da 
mostrarlo. In sintesi:
 
    r.exec(prog_1);        // Lancia Excel (=prog_1)
    Thread.sleep(2000);    // Aspetta che compaia il foglio di lavoro e poi 
mostra il messaggio
    JOptionPane.showMessageDialog(this,Numero: " + NumNuovoCliente);
 
Ora tutto funziona, MA il nuovo foglio Excel copre il messaggio che contiene 
il numero Cliente.
 
C'è modo di fare sovrapporre la finestra di dialogo sopra il foglio di 
Excel? Anche solo inizialmete...
 
Grazie! 
 
 

il 08.03.2012 14:19, Scrive Bafometto 121626912:

Tutti i dialog dei metodi show...Dialog sono creati modali. Il problema 
e' che lo sono rispetto alle finestre java, non a quelle di windows. 
Probabilmente dovresti:
this.grabFocus();
JOptionPane.showMessageDialog(this,Numero: " + NumNuovoCliente);
 
ma poi il foglio excel va in secondo piano. E' un brutto mondo!

 Excel? Anche solo inizialmete...
 
Sicuramente dirò una scemenza...
Ma non puoi *prima* mostrare una messagebox da
java che mostra il numero cliente e poi, dopo
che l'utente ha cliccato sull'ok della messagebox
lanciare Excel?
 
 
 
 
 
-- 
Se fossi io a testimoniare di me stesso, la mia testimonianza non sarebbe
vera. C'e' un altro che da' testimonianza di me, e so che la testimonianza
che egli da di me e' vera.
 
 
 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

Bafometto (08/03/2012):

Puoi provare con la creazione diretta al posto del metodo statico. Nel
tuo caso è ancora più semplice perchè non devi prelevare nessun
risultato dalla finestra di dialogo, dopo che l'utente ha premuto OK.
 
A spanne, al posto di JOptionPane.showMessageDialog(...) dovresti usare
questo codice:
 
  JOptionPane optPane=new JOptionPane("Numero: " + NumNuovoCliente);
//attento: in Java le variabili iniziano con la minuscola
  JDialog dialog=optPane.createDialog(this, "Identificativo cliente");
  dialog.setModalityType(Dialog.ModalityType.MODELESS);
  dialog.setVisible(true);
  dialog.toFront();
//...e la tua applicazione prosegue
 
Vedi tu se può bastarti. Bada bene, non l'ho testato, oltretutto non
ricordo se toFront "ruba" il focus ad Excel o se semplicemente la
finestra viene visualizzata di fronte a tutte le altre. Eventualmente
fai anche una prova mettendo
 
  dialog.setAlwaysOnTop(true);
 
prima di dialog.setVisible.
 
Visto che lavori in ambiente Microsoft, volendo potresti dare
un'occhiata a COM4J per integrarti con Excel in modo un po' più
"profondo", ma forse non è il caso in questo momento.
 
Hope that helps
 
-- 
erk: C0 CE FE 84 C2 27 F7 5B D0 7A 7E B8 46 50 9F 93 B2 38 E7 70 DA CB
9F F4 A3 88 F8 12 48 2B E2 1B riv: 47 EE 74 54 E4 77 4C C9 B8 96 0C 7B
59 F4 C1 4D - further info: Google it!
(per rispondere personalmente leva IlDitoDalCulo)
 
 

 lanciare Excel?
 
Provato... non funziona. 
 
 

Provato... non funziona
(ma grazie del suggerimento).
 
"Dr.Ugo Gagliardelli" <do.no...@me.please> ha scritto nel messaggio 
news:jjacc4$q8a$1...@speranza.aioe.org...


 ha scritto nel messaggio 
news:mn.4d4f7dc3a...@email.it...

Giusto, mia disattenzione...


 E in effetti ha funzionato benissimo!
 
Stavo pensando ad un altro "incredibile" workaround.
Java scrive il numCliente in un .txt
L'utente apre un file xls, ma un modello, dove tu
hai scritto una macro che si lancia automaticamente
all'apertura del model, la macro legge il .txt con 
e con il numCliente ci fai quel che vuoi.
 
Bye


 Bye
 
Ah, idea niente male ;-)
 
La sottoporrò all'utente (...mio nipote!) perchè è lui l'esperto di Excel 
(lui ha creato le macro di gestione). Mentre io, che ho iniziato da poco a 
studiare Java, gli ho fatto il programma che lancia  diversi applicativi e 
fa il backup incrementale dei file clienti.
Mi sa che sia una soluzione astuta!...
Farò sapere come va a finire, per ora grazie!