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

    Adattare un JTextField alle dimensioni della finestra

    Salve. Allora, avrei un JPanel che contiene un JTextField e un JButton. Vorrei che, quando si ridimensiona il JFrame che contiene questo JPanel, il JTextField si adattasse di conseguenza mentre il JButton mantenesse le stesse dimensioni... come posso fare?

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

    Re: Adattare un JTextField alle dimensioni della finestra

    Originariamente inviato da Dreamer89
    Allora, avrei un JPanel che contiene un JTextField e un JButton. Vorrei che, quando si ridimensiona il JFrame che contiene questo JPanel, il JTextField si adattasse di conseguenza mentre il JButton mantenesse le stesse dimensioni... come posso fare?
    Devi usare i layout manager. Ma dovresti spiegare di più ... a) come sono disposti i due componenti nel pannello (il pulsante sotto il text field? o alla destra?) e b) dove deve essere messo il pannello (es. nel content pane del JFrame nella parte CENTER del BorderLayout??)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Allora, il JPanel contiene un JTextField e un JButton orizzontalmente con FlowLayout. Questo JPanel è messo alla parte SOUTH con BorderLayout rispetto al JFrame che lo contiene

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Dreamer89
    il JPanel contiene un JTextField e un JButton orizzontalmente con FlowLayout.
    Non ci siamo ... FlowLayout fa "fluire" i componenti eventualmente su più linee. Rispetta il preferred size dei componenti ma non prende in considerazione di poter ridimensionare i componenti. Dopotutto la dimensione del contenitore (pannello) serve appunto per stabilire se far "fluire" o meno i componenti ... non per ridimensionarli!!!

    Usa per esempio GridBagLayout, che è molto flessibile (ma un pochino più complicato). O se vuoi una cosa semplice, anche un banale BorderLayout in cui il text field è in CENTER e il button in EAST.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Originariamente inviato da andbin
    Non ci siamo ... FlowLayout fa "fluire" i componenti eventualmente su più linee. Rispetta il preferred size dei componenti ma non prende in considerazione di poter ridimensionare i componenti. Dopotutto la dimensione del contenitore (pannello) serve appunto per stabilire se far "fluire" o meno i componenti ... non per ridimensionarli!!!

    Usa per esempio GridBagLayout, che è molto flessibile (ma un pochino più complicato). O se vuoi una cosa semplice, anche un banale BorderLayout in cui il text field è in CENTER e il button in EAST.
    Grazie ora provo BoxLayout

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Dreamer89
    Grazie ora provo BoxLayout
    No, ho scritto velocemente ma poi ho corretto: BorderLayout (avevo scritto CENTER e EAST appunto!)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    No, ho scritto velocemente ma poi ho corretto: BorderLayout (avevo scritto CENTER e EAST appunto!)
    Ma con BorderLayout non si ridimensionano anche le parti laterali?? Ora vedo

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Dreamer89
    Ma con BorderLayout non si ridimensionano anche le parti laterali?? Ora vedo
    Il pannello avrebbe un BorderLayout, con il text field in CENTER (occupa tutto lo spazio disponibile) e il button in EAST (occupa il minimo indispensabile).

    E il pannello lo metti nel SOUTH del BorderLayout del content pane. In tal caso essendo in SOUTH, si espande il più possibile in orizzontale ma non in verticale!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Allora, ho provato nel modo che mi hai suggerito, ma i componenti si dispongono come se ci fosse un FlowLayout o_O E' strano...

  10. #10
    Ho risolto, dovevo prima specificare il layout del pannello: panel.setLayout (new BorderLayout());

    Ti ringrazio

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.