Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207

    [JAVA] settare colore di un Button in base al colore scelto in una legenda

    Ragazzi mi trovo davanti a questo problema che non saprei proprio come risolvere...mi serve nuovamente il vostro aiuto...vi spiego il problema...

    ho un pannello di questo tipo :




    cliccando sul bottone "?" si apre questa JDialog che sarebbe la legenda



    praticamente l'utente cliccando su uno dei pulsanti colorati, deve poi spostarsi sulla griglia formata dai bottoni L M M G V S D (contenuta nel pannello precedente) e associare ai bottoni da lui scelti, il colore scelto nella JDialog.Come si potrebbe fare una cosa del genere :O ?? mi trovo molto disorientato riguardo questa cosa..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] settare colore di un Button in base al colore scelto in una legenda

    Originariamente inviato da jin85
    praticamente l'utente cliccando su uno dei pulsanti colorati, deve poi spostarsi sulla griglia formata dai bottoni L M M G V S D (contenuta nel pannello precedente) e associare ai bottoni da lui scelti, il colore scelto nella JDialog.Come si potrebbe fare una cosa del genere :O ?? mi trovo molto disorientato riguardo questa cosa..
    Potresti fare in modo che ognuno dei pulsanti L M M G ec... abbia un menù di "contesto" che mostra delle voci con la relativa icona colorata. Sarebbe anche più pratico e probabilmente più "intuitivo".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    quindi tu dici che la JDialog rimane solo a titolo informativo..per far vedere ogni colore che significato ha, mentre per ogni bottone L M M.... faccio aprire un menu...e che tipo di menu dovrei implementare tra i vari disponibili in java??

    cmq x quanto riguarda questa soluzione da te detta, dovrei parlare prima cn il prof. e chiedergli se gli va bene così...xkè lui all'inizio mi aveva prospettato la soluzione che ti ho descritto nel post iniziale.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jin85
    quindi tu dici che la JDialog rimane solo a titolo informativo..per far vedere ogni colore che significato ha
    Se vuoi sì.

    Originariamente inviato da jin85
    mentre per ogni bottone L M M.... faccio aprire un menu...e che tipo di menu dovrei implementare tra i vari disponibili in java??
    JPopupMenu.

    Da Java 5 in poi la classe JComponent (quindi vale per tutti i componenti Swing) ha il metodo setComponentPopupMenu(JPopupMenu popup) per cui devi semplicemente invocare questo metodo per impostare il menù.
    Per versioni pre Java 5, si deve registrare un listener (MouseListener) per ricevere notifica del click e quindi visualizzare esplicitamente il menù di popup.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    e nel popup menu posso mettere tre pulsanti e scegliere quello che voglio in modo da associare a quel determinato pulsante il colore scelto nel popup menu??

    te lo chiedo perchè nn ho mai implementato un popup menu

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jin85
    e nel popup menu posso mettere tre pulsanti e scegliere quello che voglio in modo da associare a quel determinato pulsante il colore scelto nel popup menu??
    In genere nei menù si mettono dei JMenuItem/JRadioButtonMenuItem/JCheckBoxMenuItem o JMenu (per avere sotto menù).

    In un JPopupMenu non puoi aggiungere dei Component (non c'è un add() per questo) mentre in un JMenu puoi aggiungere anche dei Component.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    ok....chiedo al prof se gli va bene questa soluzione..e poi torno qui per implementarla

    grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    sto provando così per mia cultura personale ad implementare comunque il popup menu al di là della risposta del prof (che tarda ad arrivare )

    praticamente ho scritto questo codice.. :

    codice:
    JButton buttonF = new JButton();
    		buttonF.setText("F");
    		popup = new JPopupMenu();
    		buttonF.setComponentPopupMenu(popup);
    		JButton legenda1 = new JButton();
    		legenda1.setBackground(Color.orange);
    		legenda1.setSize(25, 25);
    		menuItem.add(legenda1);
                    popup.add(menuItem);
    il problema è che il bottone legenda1 all'interno del pop up menu nn viene della grandezza che ho specificato..cm mai??mi viene schiacchiato...

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    diciamo che ho "risolto" l'inconveniente del bottone schiacchiato, assegnando ad ogni menuItems un'icona.posto il codice.

    codice:
    final JButton buttonF = new JButton();
    		buttonF.setText("F");
    		popup = new JPopupMenu();
    		//JMenu menu = new JMenu();
    		buttonF.setComponentPopupMenu(popup);
    		JMenuItem menuItem = new JMenuItem(new ImageIcon("arancione.gif"));
    		menuItem.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent evt) {
    				
    				buttonF.setBackground(Color.orange);
    				
    			}
    			});
    		popup.add(menuItem);
    		JMenuItem menuItem2= new JMenuItem(new ImageIcon("giallo.gif"));
    		menuItem2.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent evt) {
    				
    				buttonF.setBackground(Color.green);
    				
    			}
    			});
    		popup.add(menuItem2);
    		JMenuItem menuItem3= new JMenuItem(new ImageIcon("giallo_chiaro.gif"));
    		menuItem3.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent evt) {
    				
    				buttonF.setBackground(Color.yellow);
    				
    			}
    			});
    		popup.add(menuItem3);
    l'unica cosa che nn capisco è xkè ho dovuto dichiarare final il buttonF per poterlo usare nell'ActionListener.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jin85
    assegnando ad ogni menuItems un'icona.
    Ok. Nota che puoi anche mettere un testo per la voce di menù, non solo una icona (almeno con il testo sarebbe più esplicativo!).

    E se il menù di popup lo devi applicare a più pulsanti, ti conviene tenere separata la gestione del menù e nel listener delle varie voci usi getInvoker() di JPopupMenu per sapere quale è il componente (uno dei tuoi pulsanti, chiaramente) che ha invocato il menù di popup.

    Inoltre, se per la icona devi visualizzare solo un rettangolo riempito di un colore unico, potresti anche definire una semplice implementazione della interfaccia Icon, invece di caricare immagini vere e proprie.

    Originariamente inviato da jin85
    l'unica cosa che nn capisco è xkè ho dovuto dichiarare final il buttonF per poterlo usare nell'ActionListener.
    L'ho spiegato >>qui<<
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.