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

    [java]LookAndFeel non funge

    Salve....
    tentavo di settare il LookAndFeel della mia applicazione con quello window, ma non funziona....appare sempre quello di default.

    ecco cosa scrivo:
    public OmsWindowToolBarMain() {
    try{
    javax.swing.UIManager.setLookAndFeel("com.sun.java .swing.plaf.windows");
    }catch(Exception genEx){System.out.println(genEx.getMessage());}
    initComponents();

    }

    initComponent setta tutta la gui

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    inserisci il codice per settare il look and feel nel blocco static della classe frame

    codice:
    ...
    class finestra extends JFrame {
    
    static {
    
    try {
    UIManager.setLookAndFeel("com.blablabla");
    } catch(Exception e) {
    
    }
    
    }
    
    }
    ...
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    non capisco cosa vuoi dire...non ho metodi statici

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    ogni classe, ha un campo static, nel campo static vengono eseguite le istruzioni prima dell'allocazione con new e quindi prima che l'oggetto venga costruito.
    Nel tuo caso, la finestra saprà da prima della chiamata al costruttore che il laf sarà quello di windows, in modo da disegnare da 0 i componenti, ecco un altro esempio che usa il look and feel del sistema in uso:

    ah attento che il nome del package contenente il laf era errato, potrebbe essere stato anche quello(infatti se il laf non è installato viene usto quello di default Metal)

    codice:
    public class esempio extends JFrame {
    //inizio blocco static
    static {
    try {
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch(Exeption e) {
    }
    }
    //fine blocco static
    
    esempio() {
    JOptionPane.showMessage(this, "Ciao", "Ciao");
    }
    
    public static void main(String args[]) {
    new esempio();
    }
    }
    Nel blocco static le operazioni vengono chiamate come prima cosa, se ad esempio la classe avrebbe avuto anche una dichiarazione questo è l'ordine:

    codice:
    esempio e;//chiama blocco static e quindi setta laf
    e = new esempio()//chiama costruttore
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non hai metodi statici... questo mi suona strano, nemmeno il metodo main per avviare l'applicazione? Inseriscilo lì dentro. non serve inserirlo in un blocco static, è sufficiente inserirlo nel main() prima di avviare la finestra.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da LeleFT
    Non hai metodi statici... questo mi suona strano, nemmeno il metodo main per avviare l'applicazione? Inseriscilo lì dentro. non serve inserirlo in un blocco static, è sufficiente inserirlo nel main() prima di avviare la finestra.


    Ciao.
    anche nel main si, l'importante è che venga settato staticamente prima del costruttore, io solitamente metto nel blocco static, ma x abitudine.
    Se si vuole si può anche settarlo dinamicamente, ma poi bisogna aggiornare tutti i componenti, un esempio che usa i laf dinamicamente valido è il swingset2 presente del jdk che permette di settare i look and feel dall'utente ed aggiornarlo subito.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.