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

    Impostare dello spazio tra i bordi di un JPanel e un suo componente interno

    Salve. Come da titolo. Vorrei sapere come è possibile lasciare dello spazio tra i bordi di un JPanel e i componenti che contiene. Ho provato ad inserire il gap di BorderLayout ma lo spazio viene impostato solo tra i componenti interno del JPanel e non tra i suoi bordi... qualche idea?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Impostare dello spazio tra i bordi di un JPanel e un suo componente interno

    Originariamente inviato da Dreamer89
    Salve. Come da titolo. Vorrei sapere come è possibile lasciare dello spazio tra i bordi di un JPanel e i componenti che contiene. Ho provato ad inserire il gap di BorderLayout ma lo spazio viene impostato solo tra i componenti interno del JPanel e non tra i suoi bordi... qualche idea?
    Non è esattamente quello che cerchi ma prova a metter un bordo vuoto: panel.setBorder(new EmptyBorder(5, 5, 5, 5));
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Lo so ma a me interessa proprio lo spazio, perchè poi dovrei inserire anche un'immagine di sfondo al JPanel, e con i bordi non credo sia la stessa cosa

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Dreamer89
    Lo so ma a me interessa proprio lo spazio, perchè poi dovrei inserire anche un'immagine di sfondo al JPanel, e con i bordi non credo sia la stessa cosa
    Se sei tu che disegni in paintComponent() la immagine di sfondo, va benissimo quanto ti ha detto Alex'87.

    Infatti nei componenti Swing, il paint() è "spezzato" in 3 parti (vedi descrizione qui), prima viene invocato paintComponent() (in cui tu disegni lo sfondo) e poi solo dopo viene invocato paintBorder(). Ma siccome un EmptyBorder in realtà non disegna un bel nulla, se nel tuo paintComponent parti a disegnare lo sfondo da (0,0), allora disegni anche sui bordi. L'effetto finale è che il bordo effettivamente "sposta" i componenti nel panel (perché il bordo viene preso in considerazione nel layout) ma tu disegni su tutto il componente, compresi i bordi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.