Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Java] JTable e contenuto celle.

    Salve , vorrei sapere come fare per visualizzare due contenuti diversi nella stessa cella, non contemporaneamente.

    Mi spiego meglio: io ho, per esempio, la cella A1 che contiene 5, e la cella A2 che contiene 10; nella cella B10, se inserisco "=A1+A2", voglio visualizzare la somma dei contenuto della due celle, quando non è selezionata, e la formula, (sottoforma di stringa) quando clicco sulla cella.
    Qualcuno sa dirmi come poter fare tutto ciò?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] JTable e contenuto celle.

    Originariamente inviato da SusyFragolina
    Mi spiego meglio: io ho, per esempio, la cella A1 che contiene 5, e la cella A2 che contiene 10; nella cella B10, se inserisco "=A1+A2", voglio visualizzare la somma dei contenuto della due celle, quando non è selezionata, e la formula, (sottoforma di stringa) quando clicco sulla cella.
    Qualcuno sa dirmi come poter fare tutto ciò?
    Per fare questo ci sono diversi aspetti da considerare/valutare:
    a) Come determinare quando si conferma nella cella la espressione
    b) Come "valutare" (parsing) una espressione del tipo "=A1+A2" (o più complessa)
    c) Come eseguire il calcolo ed assegnare il risultato alla cella.

    La mia dritta è: ragiona sul table model (dovresti o implementarne uno tu da zero o eventualmente ridefinire solo qualcosa di quello predefinito cioè DefaultTableModel).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Forse mi sono spiegata male.
    Ho già un mio table model, e sulla mia tabella riesco a farci tutto quello che voglio, scrivere, salvare, caricare da file, e riesco anche a fare il calcolo che descrivevo sopra.

    Quando nella cella B1 scrivo "=A1+A2", nella cella mi restituisce il valore calcolato; e fin qui tutto ok. Quando invece riclicco sulla cella B1, solo nel momento in cui clicco, vorrei aver la possibilità di visualizzare la formula di partenza, cioè "=A1+A2" e non il risultato del calcolo.
    Spero di averti chiarito meglio le idee sul mio problema.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da SusyFragolina
    Quando invece riclicco sulla cella B1, solo nel momento in cui clicco, vorrei aver la possibilità di visualizzare la formula di partenza, cioè "=A1+A2" e non il risultato del calcolo.
    Ok ma scenario: fai click e visualizza la formula. Quando e in base a cosa vuoi che ritorni a visualizzare il risultato? Anche questo conta.

    Comunque per quello che potrei pensare io, farei così: in fase di "edit" si visualizza/edita la formula. In fase di solo "display" si visualizza il risultato. Come ben sai JTable si basa su renderer e editor. Ognuno potrebbe fare il suo compito, a patto di esporre le informazioni sulle formule dal model in modo appropriato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Comunque per quello che potrei pensare io, farei così: in fase di "edit" si visualizza/edita la formula. In fase di solo "display" si visualizza il risultato. Come ben sai JTable si basa su renderer e editor. Ognuno potrebbe fare il suo compito, a patto di esporre le informazioni sulle formule dal model in modo appropriato.
    Esattamente, proprio questo vorrei riuscire a fare.
    In fase di display già riesco a visualizzare il risultato della formula.
    Adesso che ci siamo capiti , come potrei fare in fase di edit a visualizzare/editare la formula?

  6. #6
    Non so proprio da che parte prendere, c'è qualcuno che molto gentilmente riesce a darmi qualche consiglio?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da SusyFragolina
    Non so proprio da che parte prendere, c'è qualcuno che molto gentilmente riesce a darmi qualche consiglio?
    La "butto" lì .. anche se ovviamente dovrei provare per verificare se davvero funziona.

    Il tuo table model potrebbe gestire oggetti di tipo es. Espressione che "modella" l'insieme di formula e risultato. Quindi il suo getValueAt potrebbe restituire oggetti Espressione.
    A quel punto definisci un tuo renderer e un tuo editor (potresti anche solo fare dei "wrapper" di quelli standard che gestiscono stringhe o valori numerici) e configurare il tutto sulla tabella.

    Quindi il renderer "prende" dal Espressione il risultato per visualizzarlo, mentre il editor "prende" dal Espressione la formula per visualizzarla/editarla.

    Chiaramente non è tutto qui .... bisognerebbe fare un po' di cose.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Grazie mille andbin.
    Provo a sbatterci un po la testa, se incontro dei problemi, tieniti pronto che ti farò altre domande.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.