Jinternal frame stile del jframe

di il
11 risposte

Jinternal frame stile del jframe

Salve a tutti, ma come faccio per fare i jinternal frame come il jframe? per farvi capire , il jframe me lo crea come lo stile del sistema operativo, ma la stessa cosa non me lo fa con i jinternal frame...come posso fare che metodo cè?

11 Risposte

  • Re: Jinternal frame stile del jframe

    eleinad852 ha scritto:


    salve a tutti, ma come faccio per fare i jinternal frame come il jframe? per farvi capire , il jframe me lo crea come lo stile del sistema operativo, ma la stessa cosa non me lo fa con i jinternal frame...come posso fare che metodo cè?
    L'aspetto dei componenti Swing (JInternalFrame compreso), dipende dal Look&Feel impostato.
    Modifying the Look and Feel
  • Re: Jinternal frame stile del jframe

    Ma che devo scrivere tutto quel codice? a me va bene cosi, io ho un metodo che dal form principale mi apre i jinternal frame che richiamo dagli eventi dei jmenu, ed è la dentro che devo mettere un cacchio di metodo solo per copiare lo stile del jframe..
  • Re: Jinternal frame stile del jframe

    eleinad852 ha scritto:


    ma che devo scrivere tutto quel codice?
    No.
    Se a te interessa solo impostare fisso e sempre il look&feel "nativo" del sistema, basta che nel main della tua applicazione, prima di creare qualunque componente per la tua UI fai:
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    (devi catturare delle eccezioni, vedi javadoc)

    Se invece ti interessa che sia l'utente a poter scegliere tra i L&F installati tramite voci di menù, pulsanti, combo (quello che ti pare ....) si può fare ma richiede più codice e necessita di alcuni accorgimenti particolari riguardo quando e come applicare il cambio di L&F dopo che la UI è già visibile.
  • Re: Jinternal frame stile del jframe

    Grazie, non è proprio il massimo ma potrebbe andare bene, non me la fa proprio come il jframe arrotondata ecc... ci sono alternative? poi come potrei fare in modo che se si allarga il jinternal frame automaticamente tutte le componenti assumono la larghezza del jinternal frame?
  • Re: Jinternal frame stile del jframe

    eleinad852 ha scritto:


    grazie, non è proprio il massimo ma potrebbe andare bene, non me la fa proprio come il jframe arrotondata ecc... ci sono alternative?
    Cioè? Quale S.O. hai? Uno screenshot per capire?

    eleinad852 ha scritto:


    poi come potrei fare in modo che se si allarga il jinternal frame automaticamente tutte le componenti assumono la larghezza del jinternal frame?
    Dipende da come è stata creata la UI nel internal frame, quale layout manager c'è nel content pane, ecc....
  • Re: Jinternal frame stile del jframe

    Al layout del contentpane ci ho lasciato null, le jinternal frame sono semplici, ci ho messo solo il setcloseable e basta, per le finestre vedi come me le fa io ho windows 7 però è strano perchè la x di chiusura è rimangiata e non me la posiziona in alto a destra, forse sarò io pignolo boh, e i bordi inferiori della finestra nn sono arrotondati
    Allegati:
    15370_0f0f2302f68d632aaf9f92da70ff81a3.png
    15370_0f0f2302f68d632aaf9f92da70ff81a3.png
  • Re: Jinternal frame stile del jframe

    eleinad852 ha scritto:


    al layout del contentpane ci ho lasciato null
    Cioè posizionamento "assoluto" e dimensioni prefissate. Quindi come puoi pretendere che si possano ridimensionare in automatico da soli e senza scrivere altro? Oltretutto questo approccio non permette ai componenti di adattarsi ai font predefiniti e ad altre caratteristiche che variano, anche molto, tra i vari Look&Feel.
    Dovresti gestire tu un evento di resize e scrivere un mucchio di codice per fare parecchi calcoli al fine di posizionare e/o dimensionare ciascuno dei componenti. Verrebbe fuori una roba brutta, fumosa e ingestibile .....
    I layout manager esistono appunto per questo. Cerca di comprendere come usarli.

    eleinad852 ha scritto:


    per le finestre vedi come me le fa io ho windows 7 però è strano perchè la x di chiusura è rimangiata
    È vero, i pulsantini sono leggermente "smangiati" sul lato destro. Ho provato poco fa con il demo ufficiale SwingSet2 (Demos and Samples JDK8 sono qui).
    O è un baco o è un difetto dovuto a calcoli errati sulle dimensioni. Ma comunque è da prendere "come è".

    eleinad852 ha scritto:


    non me la posiziona in alto a destra
    In alto a destra ... cosa? Il JInternalFrame?

    eleinad852 ha scritto:


    e i bordi inferiori della finestra nn sono arrotondati
    Forse non hai ancora compreso che i Look&Feel sono codice Java "puro" che disegna i componenti Swing. E un L&F in genere: 1) crea un aspetto totalmente custom, senza voler replicare nulla di esistente (es. il Nimbus) oppure 2) tenta di replicare più o meno fedelmente il look di un qualche sistema preesistente. Chiaramente in quest'ultimo caso non è detto che sia perfettamente fedele.

    E gli effetti di Windows Aero sono notevolmente più sofisticati e performanti di quanto può fare il L&F.
  • Re: Jinternal frame stile del jframe

    Capisco, no in alto a destra intendevo la x del jinternal frame, cmq me la tengo così va bene, però mi interessava poter far ingrandire all utente i jinternal frame ma che anke i componenti all interno lo fanno automaticamente, quindi dovrei toccare il setlayout del desktopane o direttamente del contentpane?
  • Re: Jinternal frame stile del jframe

    eleinad852 ha scritto:


    no in alto a destra intendevo la x del jinternal frame
    Ma la X del JInternalFrame è ... a destra. Ovviamente nella sua barra del titolo. Se ti riferisci al fatto che in Windows le finestre "native" hanno i pulsantini precisamente allineati al bordo superiore mentre nel JInternalFrame no .... questo, ripeto, è dovuto al fatto che appunto il L&F è stato fatto in quel modo e non necessariamente replica tutto fedelmente.

    eleinad852 ha scritto:


    però mi interessava poter far ingrandire all utente i jinternal frame
    Innanzitutto deve essere impostato come "resizable".

    eleinad852 ha scritto:


    ma che anke i componenti all interno lo fanno automaticamente, quindi dovrei toccare il setlayout del desktopane o direttamente del contentpane?
    Devi rivedere e rivalutare tutto il layout dei tuoi componenti. Il posizionamento "assoluto" che hai usato non ti dà alcun vantaggio particolare.
  • Re: Jinternal frame stile del jframe

    Si è resizable, poi che altro devo metterli per far si che tutti i componenti lo seguano?
  • Re: Jinternal frame stile del jframe

    eleinad852 ha scritto:


    poi che altro devo metterli per far si che tutti i componenti lo seguano?
    Lo ripeto ancora, devi sfruttare i layout manager! Laying Out Components Within a Container
Devi accedere o registrarti per scrivere nel forum
11 risposte