Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31

    Interfaccia grafica - schermate in successione

    Ciao a tutti ragazzi. Sto realizzando con NetBeans un programma con interfaccia grafica (swing) e sono un po' alle prime armi...
    Mi piacerebbe che all'interno del programma l'utente possa avanzare di schermata in schermata tramite i classici bottoni "Avanti" e "Indietro" perchè le operazioni da compiere hanno un certo ordine logico e non ha molto senso metterle tutte nella stessa schermata.
    Ho pensato di fare in modo che alla pressione del pulsante ("Avanti") i componenti precedenti scompaiano e ne diventino visibili degli altri, ma forse come soluzione è un po' disordinata! Esiste un altro modo per fare una cosa simile?

    E poi avrei un'altra domandina...nel mio programma ho inserito un TextField in cui in base ad un evento compare una stringa all'interno. Ecco, poichè la lunghezza della stringa è molto elevata vorrei che andasse a capo all'interno del TextField mentre mi rimane su un unico rigo costringendomi a estendere in orizzontale il campo per farla vedere tutta. Come posso fare?

    Grazie a tutti in anticipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    Ho pensato di fare in modo che alla pressione del pulsante ("Avanti") i componenti precedenti scompaiano e ne diventino visibili degli altri, ma forse come soluzione è un po' disordinata! Esiste un altro modo per fare una cosa simile?
    Non è affatto "disordinata" come soluzione .... anzi è assolutamente fattibile e con validi risultati. Tutto però dipende da cosa hai usato per il layout dei componenti, con quale/i layout manager o se con il posizionamento "assoluto". In base a questo ci sono diverse strade.
    Comunque c'è un bel esempio "Panel Switch" tra i miei Java Examples (vedi firma).


    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    vorrei che andasse a capo all'interno del TextField mentre mi rimane su un unico rigo
    Purtroppo JTextField è a riga singola .... è così, non si può cambiare.
    Per testi multiriga (e senza stilizzazioni, più colori, font, ecc..) c'è JTextArea che è fatto apposta per quello.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31
    Grazie per la risposta, darò un'occhiata agli esempi
    Per quanto riguarda la questione del testo, ho provato a mettere una JTextArea. La questione della dimensione della casella si è risolta, però la stringa continua ad apparire su un rigo solo quando io vorrei che andasse a capo. In più ovviamente si è creata una scrollbar orribile. Per questo ti vorrei chiedere se esiste un'opzione da settare per rendere la JTextArea non "ampliabile" con una scrollbar e "costringendo" la stringa a essere suddivisa in più righe, oppure in alternativa, come si fa a cambiare il design (che mi sembra sia impostato su "Nimbus"). Grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31
    Ho disattivato la scrollbar ma la stringa continua a comparire in un rigo solo. Mi sa che devo spezzettarla in tante sottostringhe, no?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    però la stringa continua ad apparire su un rigo solo quando io vorrei che andasse a capo.
    Quando una riga è molto lunga e la larghezza della textarea è insufficiente, il fatto di andare a capo oppure no dipende dalla proprietà "lineWrap" (get/setLineWrap). Per default è false, ovvero non va a capo.

    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    Per questo ti vorrei chiedere se esiste un'opzione da settare per rendere la JTextArea non "ampliabile" con una scrollbar e "costringendo" la stringa a essere suddivisa in più righe
    Innanzitutto, JTextArea (come altri componenti potenzialmente "grandi", es. JTable) si mette di norma come view in un JScrollPane. Le policy di visualizzazione delle due scrollbar in JScrollPane sono configurabili (le opzioni sono 3: "mai", "sempre" e "solo se necessario").

    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    come si fa a cambiare il design (che mi sembra sia impostato su "Nimbus")
    Il Nimbus esiste da Java 6 update 10 ma non è quello di "default". Il predefinito è il "Metal" con tema "Ocean".
    Per cui se è impostato il Nimbus vuol dire che qualcosa/qualcuno l'ha impostato esplicitamente, o "programmaticamente" (con del codice) o al lancio della applicazione tramite una apposita system-property.

    Se vuoi sapere come toglierlo .... guarda comunque, per capire, come si fa ad impostarlo!
    https://docs.oracle.com/javase/tutor...el/nimbus.html

    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    In più ovviamente si è creata una scrollbar orribile.
    Il Nimbus in generale è molto bello e curato .... peccato che le scrollbar siano parecchio brutte (per i miei gusti). Non mi sono mai piaciute .... e vedo che non sono l'unico!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31
    Perfetto, ero già riuscita a disattivare le scrollbar ma ora con lineWrap settato ho risolto definitivamente.
    Nel codice risultava settato Nimbus, non so perchè! Ho risolto anche lì
    Grazie mille!!!

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.