Nuovo design per JComponent

di il
1 risposte

Nuovo design per JComponent

Salve a tutti.
Vorrei che qualcuno mi aiutasse a capire un concetto. Come viene disegnato un qualsiasi JComponent dalla scheda grafica? So(o almeno credo) che la costruzione grafica della maggior parte di essi venga delegata al sistema operativo ma quello che mi chiedo io è:
voglio per esempio inserire un JButton che abbia un design stabilito da me e non quello prestabilito dal sistema operativo o java che sia. Come potrei fare?

1 Risposte

  • Re: Nuovo design per JComponent

    mrdaino ha scritto:


    Come viene disegnato un qualsiasi JComponent dalla scheda grafica? So(o almeno credo) che la costruzione grafica della maggior parte di essi venga delegata al sistema operativo
    Tutti i componenti Swing (a parte JFrame, JDialog che sono componenti "top-level" cioè finestre le cui decorazioni, bordi, titolo, ecc... sono quelle "native" del sistema) sono disegnati esclusivamente con puro codice Java.
    La architettura di Swing è basata sui Look&Feel, ovvero è possible agganciare un apposito L&F per cambiare l'aspetto/comportamento di tutti i componenti Swing. E può esserci un L&F che riproduce magari l'aspetto "nativo" del sistema .... ma questo non vuol dire che usa i componenti nativi .....

    mrdaino ha scritto:


    voglio per esempio inserire un JButton che abbia un design stabilito da me e non quello prestabilito dal sistema operativo o java che sia. Come potrei fare?
    Implementare da zero un L&F è una cosa estremamente complessa e bisogna avere solidissime conoscenze sulla architettura interna di Swing.
    Cambiare l'aspetto di tutti i pulsanti es. JButton si potrebbe fare sempre a livello di L&F andando ad implementare ButtonUI ma anche qui non è comunque banale.

    Nella maggior parte dei casi non è affatto necessario arrivare a questi livelli. JButton ha tutta una serie di proprietà, background, border, margin, focusPainted, ecc.... che permettono di cambiare diciamo parecchio del JButton. Al 99,9% basta agire su queste proprietà standard. E nessuno ti vieta di estendere JButton per creare il "tuo" pulsante da usare in tutta la tua applicazione. E se le proprietà standard non bastassero, si potrebbe ancora fare qualcosa di più a livello di painting del componente in una estensione di JButton.
Devi accedere o registrarti per scrivere nel forum
1 risposte