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.