Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    6

    jar su mac: comportamento diverso da windows

    Salve a tutti, sto realizzando un'applicazione in java la cui interfaccia grafica è stata fatta grazie alle librerie swing.

    A parità di versione della java virtual machine della macchina su cui gira l'applicazione, ci sono due differenze sostanziali a seconda che il file jar prodotto venga eseguito su una macchina linux, windows oppure mac:

    Ad un JButton ho assegnato un colore blu specifico:

    codice:
    setForeground(new Color(21,64,97));
    Tale colore viene correttamente visualizzato su macchine windows e linux, mentre un mac sembra non riconoscerlo ed assegna al bottone il colore di default.

    Inoltre, ad un JOptionPane ho assegnato un array di JButton che in soldoni permette di realizzare i bottoni "Si" e "No":

    codice:
    		optionPane = new JOptionPane(message,JOptionPane.QUESTION_MESSAGE,JOptionPane.DEFAULT_OPTION,(Icon)Icona.get("dialog_domanda"));
    		YesButton = new MyButtonLight("Si",Icona.get("si"));YesButton.addActionListener(this);
    		NoButton = new MyButtonLight("No",Icona.get("no"));NoButton.addActionListener(this);
    		options = new MyButtonLight[] {YesButton,NoButton};
    		optionPane.setOptions(options);
    Su windows e linux viene visualizzato a sinistra il bottone "Si" e a destra il bottone "No" (come dovrebbe essere), mentre il mac inverte l'ordine dei due pulsanti.

    Ora vi chiedo:
    1 - perchè il mac si comporta diversamente?
    2 - come fare in modo che il mac si comporti come windows e linux?

    Ringrazio chi volesse darmi una mano...

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    6
    UP!

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

    Re: jar su mac: comportamento diverso da windows

    Originariamente inviato da ghes86
    Su windows e linux viene visualizzato a sinistra il bottone "Si" e a destra il bottone "No" (come dovrebbe essere), mentre il mac inverte l'ordine dei due pulsanti.

    Ora vi chiedo:
    1 - perchè il mac si comporta diversamente?
    La JVM per Mac OS X cerca (almeno in parte) di seguire le Apple Human Interface Guidelines.

    Nel riprende il tuo problema, tutte le applicazioni mac hanno i pulsanti "Yes" e "No" (e più in generale, "Conferma" e "Annulla") disposti a partire da destra. L'utente quindi si aspetta di trovare il "Sì" a destra e il "No" a sinistra.

    Originariamente inviato da ghes86
    2 - come fare in modo che il mac si comporti come windows e linux?
    Usi il tema nativo giusto? Al posto di quello usa il tema cross platform

    edit
    Se vuoi fare qualche ottimizzazione su mac, questo potrebbe esserti utile
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    6
    Innanzi tutto grazie della risposta.

    Dunque dell'ordine di disposizione dei tasti posso disinteressarmi da quanti mi hai detto..

    Ma per quanto riguarda il colore che MAC non riconosce,come posso fare?

    Non capisco cosa intendi con tema nativo e cross platform..

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da ghes86
    Ma per quanto riguarda il colore che MAC non riconosce,come posso fare?

    Non capisco cosa intendi con tema nativo e cross platform..
    Le applicazioni Java Swing hanno un tema "multipiattaforma" (uguale su ogni sistema operativo) e una serie di temi "nativi" (che rendono il programma del tutto simile al sistema operativo che li ospita).

    Per modificare il tema puoi fare così:
    codice:
    public static void main(String[] args) {
       try {
         // imposta il tema nativo
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    
         // oppure imposta il tema multipiattaforma
         // UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
      } catch (Exception ex) {
         System.err.println("error loading look and feel - using default.");
      }
    }
    Potresti provare quello che dovrebbe diventare il nuovo tema multipiattaforma, Nimbus: http://download.oracle.com/javase/tu...el/nimbus.html

    Maggiori informazioni sui temi di Swing su http://download.oracle.com/javase/tu...feel/plaf.html
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    6
    e impostando un tema crossplatform dici che risolvo il problema che il mac non mi riconosce il colore RGB (21,64,97) ?

    mah, sono un pò dubbioso sinceramente..

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da ghes86
    e impostando un tema crossplatform dici che risolvo il problema che il mac non mi riconosce il colore RGB (21,64,97) ?

    mah, sono un pò dubbioso sinceramente..
    Non hai fatto vedere come hai cambiato il colore (il codice completo di quella parte di codice), senza vedere quello non si può dire che succede. Per esperienza personale posso dirti che il tema di Apple è un po' particolare...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    6
    Originariamente inviato da Alex'87
    Non hai fatto vedere come hai cambiato il colore (il codice completo di quella parte di codice), senza vedere quello non si può dire che succede. Per esperienza personale posso dirti che il tema di Apple è un po' particolare...
    MyButtonDark:
    codice:
    package grafica;
    import java.awt.*;
    import javax.swing.*;
    
    public class MyButtonDark extends MyButton
    {
    	public MyButtonDark()
    	{
    		super();
    		setBackground(new Color(80,125,159));
    		setForeground(Color.white);
    	}
    	
    	public MyButtonDark(String title)
    	{
    		super(title);
    		setBackground(new Color(80,125,159));
    		setForeground(Color.white);
    	}
    	
    	public MyButtonDark(String title,ImageIcon icon)
    	{
    		super(title,icon);
    		setBackground(new Color(80,125,159));
    		setForeground(Color.white);
    	}
    }
    MyButton:
    codice:
    package grafica;
    import javax.swing.*;
    
    public class MyButton extends JButton
    {
    	public MyButton()
    	{
    		super();
    		setFont(MyFont.get());
    		setFocusPainted(false);
    	}
    	
    	public MyButton(String title)
    	{
    		super(title);
    		setFont(MyFont.get());
    		setFocusPainted(false);
    	}
    	
    	public MyButton(String title,ImageIcon icon)
    	{
    		super(title,icon);
    		setFont(MyFont.get());
    		setVerticalTextPosition(AbstractButton.CENTER);
    		setHorizontalTextPosition(AbstractButton.RIGHT);
    		setFocusPainted(false);
    	}
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    6
    UP!

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.