Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76

    background colorChooser

    Ciao ragazzi vi espono il mio problema. Devo inserire un colo chooser nella mia interfaccia java, ma non come finastra indipendente bensi ancorato all'iterno della mia interfaccia.Fin qui nessun problema, vi mostro il pezzo di codice che ho utilizzato:

    ...
    JColorChooser colorChooser = new JColorChooser();
    colorChooser.setBackground(Color.WHITE);
    colorChooser.setPreferredSize(new Dimension(240,230));
    colorChooser.getSelectionModel().addChangeListener (this);
    colorChooser.removeChooserPanel(colorChooser.getCh ooserPanels()[0]);
    colorChooser.removeChooserPanel(colorChooser.getCh ooserPanels()[1]);
    AbstractColorChooserPanel colorPanel = colorChooser.getChooserPanels()[0];
    colorPanel.setPreferredSize(new Dimension(240,230));
    colorPanel.setBackground(Color.WHITE);
    this.add(colorChooser, BorderLayout.CENTER);
    ...

    dove this è la mia classe che estende un JPanel. Cio che ho fatto quindi è mantenermi solo uno dei 3 chooserPanel e inserirlo nell'interfaccia...adesso unica difficoltà è che nn riesco a impostare il colore di sfondo del color chooser a bianco, mi resta sempre grigio (ovviamente il colore del pannello di contenimento è stato impostato a bianco).come posso fare?GRAZIE

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Prova con colorChooser.setOpaque(false) :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    già una volta è stato affrontato il problema:
    JColorChooser è formato da vari componenti e quindi dovresti settare il colore a tutti quelli che la compongono se nn sbaglio
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    ciao ho provato con setOpaque(false) ma nn funziona ugualmente... ma come faccio a sapere quali sono tutti i componenti che formano il JColorChooser? Io imposto il background bianco su colo chooser e sull'unico chooserPanel che mantengo nella scena e non elimino....su cosa altro dovrei impostare il background?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da alf83
    ma come faccio a sapere quali sono tutti i componenti che formano il JColorChooser?
    Ne avevo già parlato in un'altra discussione dicendo semplicemente che il JColorChooser è un componente complesso.

    Con questo codice si può vedere molto bene la struttura della dialog del JColorChooser (e in generale di un qualunque "Container"):

    codice:
    import java.awt.*;
    import javax.swing.*;
    
    public class JColorChooserStructure
    {
        public static void dumpGuiStructure (Container c, int level)
        {
            for (int i = 0; i < level; i++)
                System.out.print ("    ");
    
            System.out.print (c.getClass ().getName ());
    
            if (c instanceof JLabel)
                System.out.print ("  text=\"" + ((JLabel) c).getText() + "\"");
            else if (c instanceof AbstractButton)
                System.out.print ("  text=\"" + ((AbstractButton) c).getText() + "\"");
    
            System.out.println ();
    
            Component[] components = c.getComponents ();
    
            for (int i = 0; i < components.length; i++)
            {
                if (components[i] instanceof Container)
                    dumpGuiStructure ((Container) components[i], level+1);
            }
        }
    
        public static void main (String[] args)
        {
            SwingUtilities.invokeLater (new Runnable ()
            {
                public void run ()
                {
                    JDialog dialog = JColorChooser.createDialog (null, "titolo",
                                     true, new JColorChooser(), null, null);
    
                    dumpGuiStructure (dialog, 0);
    
                    dialog.dispose ();
                }
            });
        }
    }
    E se volete "deliziarvi" con la struttura della dialog di un JColorChooser, eccola!

    codice:
    javax.swing.ColorChooserDialog
        javax.swing.JRootPane
            javax.swing.JPanel
            javax.swing.JLayeredPane
                javax.swing.JPanel
                    javax.swing.JColorChooser
                        javax.swing.JTabbedPane
                            javax.swing.JPanel
                                javax.swing.colorchooser.DefaultSwatchChooserPanel
                                    javax.swing.JPanel
                                        javax.swing.JPanel
                                            javax.swing.colorchooser.MainSwatchPanel
                                        javax.swing.JLabel  text="Recenti:"
                                        javax.swing.JPanel
                                            javax.swing.colorchooser.RecentSwatchPanel
                            javax.swing.JPanel
                                javax.swing.colorchooser.DefaultHSBChooserPanel
                                    javax.swing.JPanel
                                        javax.swing.colorchooser.DefaultHSBChooserPanel$3  text=""
                                        javax.swing.JSlider
                                        javax.swing.JLabel  text=""
                                    javax.swing.JPanel
                                        javax.swing.JPanel
                                            javax.swing.JRadioButton  text="H"
                                            javax.swing.JSpinner
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.JSpinner$NumberEditor
                                                    javax.swing.JFormattedTextField
                                            javax.swing.JRadioButton  text="S"
                                            javax.swing.JSpinner
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.JSpinner$NumberEditor
                                                    javax.swing.JFormattedTextField
                                            javax.swing.JRadioButton  text="B"
                                            javax.swing.JSpinner
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.JSpinner$NumberEditor
                                                    javax.swing.JFormattedTextField
                                        javax.swing.JLabel  text=" "
                                        javax.swing.JPanel
                                            javax.swing.JLabel  text="R"
                                            javax.swing.JTextField
                                            javax.swing.JLabel  text="G"
                                            javax.swing.JTextField
                                            javax.swing.JLabel  text="B"
                                            javax.swing.JTextField
                            javax.swing.JPanel
                                javax.swing.colorchooser.DefaultRGBChooserPanel
                                    javax.swing.JPanel
                                        javax.swing.JLabel  text="Rosso"
                                        javax.swing.JSlider
                                        javax.swing.JPanel
                                            javax.swing.JSpinner
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.JSpinner$NumberEditor
                                                    javax.swing.JFormattedTextField
                                        javax.swing.JLabel  text="Verde"
                                        javax.swing.JSlider
                                        javax.swing.JPanel
                                            javax.swing.JSpinner
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.JSpinner$NumberEditor
                                                    javax.swing.JFormattedTextField
                                        javax.swing.JLabel  text="Blu"
                                        javax.swing.JSlider
                                        javax.swing.JPanel
                                            javax.swing.JSpinner
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.plaf.basic.BasicArrowButton  text=""
                                                javax.swing.JSpinner$NumberEditor
                                                    javax.swing.JFormattedTextField
                        javax.swing.JPanel
                            javax.swing.colorchooser.DefaultPreviewPanel
                    javax.swing.JPanel
                        javax.swing.JButton  text="OK"
                        javax.swing.JButton  text="Annulla"
                        javax.swing.JButton  text="Ripristina"
    Semplice come struttura, no?

    Notate come il JColorChooser sia solamente una parte (quella in blu), che compone la dialog. Proprio perché JColorChooser infatti è semplicemente un componente, che si può mettere in un qualunque contenitore se non si vuole visualizzarlo nella "sua" dialog creata con createDialog() o showDialog().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    ok, ti ringrazio molto per la tua risposta chiara e completa, mi ha aiutato a capire meglio la struttura del JColorChooser. Ti chiedo se hai qualche idea sul come a partire dal semplice oggetto JColorChooser ,che inserisco sulla mia interfaccia cosi come ho descritto sopra, possa risalire a tutti questi componenti che lo compongono e intervenire sulle loro proprietà...GRAZIE

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    Ok ho risolto il problema, navigando la struttua del JColorChooser attraverso una cascata di operazioni getComponents() sui componenti del chooser.Mi è stato possibile grazie al listone di classi e sottoclassi che compongono il JColorChooser che mi hai fornito nella risposta precedente...grazie ancora CIAO

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.