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

    Anomalia JMenu

    Ciao a tutti,in pratica ho questo problema:

    nel mio Frame ho 2 JMenu.Il primo su un MEnuBar ed il secondo su un Panel normale.

    Ora non sò il perchè ma il secondo mostra gli item SOLTANTO se si clicca sul primo,altrimenti no ne vuole sapere di aprirsi.

    Sapreste dirmi il prechè?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Hai scritto male qualcosa nel codice...
    Se non lo posti pero', non possiamo sapere cosa.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Ecco qui

    codice:
    {
    				MenuBar = new JMenuBar();
    				setJMenuBar(MenuBar);
    				MenuBar.setPreferredSize(new java.awt.Dimension(689, 36));
    				MenuBar.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    				{
    					databaseButton = new JButton();
    					FlowLayout databaseButtonLayout = new FlowLayout();
    					MenuBar.add(databaseButton);
    					databaseButton.setLayout(databaseButtonLayout);
    					databaseButton.setText("Conn.Database");
    					databaseButton.setIcon(new ImageIcon(getClass().getClassLoader().getResource("icon_sql_32px.gif")));
    					databaseButton.setToolTipText("Apri la connessione con il Database");
    					databaseButton.setBorder(BorderFactory.createTitledBorder(""));
    					databaseButton.setSize(176, 36);
    					databaseButton.setPreferredSize(new java.awt.Dimension(229, 36));
    					databaseButton.setBackground(new java.awt.Color(192,192,192));
    					databaseButton.addMouseListener(new MouseAdapter() {
    						public void mouseClicked(MouseEvent evt) {
    							databaseButtonMouseClicked(evt);
    						}
    					});
    				}
    				{
    					creaConto = new JMenu();
    					MenuBar.add(creaConto);
    					creaConto.setText("Apri Conto");
    					creaConto.setBorder(BorderFactory.createTitledBorder(""));
    					creaConto.setSize(150, 36);
    					creaConto.setPreferredSize(new java.awt.Dimension(189, 35));
    					creaConto.add(new JMenuItem ("Conto con Fido"));
    				}
    				{
    					operazioniConto = new JMenu();
    					MenuBar.add(operazioniConto);
    					operazioniConto.setText("Operazioni");
    					operazioniConto.setToolTipText("Seleziona la operazione da effettuare sul Conto");
    					operazioniConto.setBorder(BorderFactory.createTitledBorder(""));
    					operazioniConto.setSize(150, 36);
    					operazioniConto.setPreferredSize(new java.awt.Dimension(189, 35));
    					operazioniConto.add(new JMenuItem ("Accredita"));
    					operazioniConto.add(new JMenuItem ("Preleva"));
    					operazioniConto.add(new JMenuItem ("Imposta Fido"));
    					operazioniConto.add(new JMenuItem ("Chiudi Conto"));
    				}
    				{
    					visualizzaMenu = new JMenu();
    					MenuBar.add(visualizzaMenu);
    					visualizzaMenu.setText("Visualizza");
    					visualizzaMenu.setBorder(BorderFactory.createTitledBorder(""));
    					visualizzaMenu.setSize(150, 36);
    					visualizzaMenu.setPreferredSize(new java.awt.Dimension(196, 35));
    					visualizzaMenu.add(new JMenuItem ("Conto"));
    					visualizzaMenu.add(new JMenuItem ("Lista Conti"));
    					visualizzaMenu.add(new JMenuItem ("Percentuale Conti con Fido"));
    					visualizzaMenu.add(new JMenuItem ("Transazioni Conto"));
    				}
    				{
    					salva_carica = new JMenu();
    					MenuBar.add(salva_carica);
    					salva_carica.setText("Salva/Carica");
    					salva_carica.setBorder(BorderFactory.createTitledBorder(""));
    					salva_carica.setSize(150, 36);
    					salva_carica.setPreferredSize(new java.awt.Dimension(245, 35));
    					//si attiva quando si effettua la connessione al Database
    					salva_carica.setEnabled(false);
    					salva_carica.add(new JMenuItem ("Salva"));
    					salva_carica.add(new JMenuItem ("Carica"));
    				}
    
    			}
    
    	//Pannello
    
    {
    
    				PannelloData = new JDesktopPane();
    				getContentPane().add(PannelloData, BorderLayout.CENTER);
    				PannelloData.setPreferredSize(new java.awt.Dimension(800, 99));
    				PannelloData.setBackground(new java.awt.Color(0,128,192));
    				PannelloData.setEnabled(true);
    				{
    					GiornoMenu = new JMenu();
    					PannelloData.add(GiornoMenu);
    					GiornoMenu.setEnabled(true);
    					GiornoMenu.setBounds(280, 28, 84, 35);
    					GiornoMenu.setText("giorni");
    					GiornoMenu.setBorder(BorderFactory.createTitledBorder(""));
    					GiornoMenu.setPopupMenuVisible(true);
    					GiornoMenu.setRolloverEnabled(true);
    					JMenuItem prima =new JMenuItem("Prima");
    					prima.setEnabled(true);
    					GiornoMenu.add(prima);
    				}
    				{
    					separ2 = new JSeparator();
    					PannelloData.add(separ2);
    					separ2.setBounds(0, 91, 805, 14);
    					separ2.setBackground(new java.awt.Color(0,0,0));
    					separ2.setFont(new java.awt.Font("Dialog",0,6));
    				}
    			}
    questo è il codice se non faccio partire un JMenu delMenuBar ,ad esempio creaConto ,non mi parte neanche GiornoMenu.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Un JMenu per funzionare deve stare all'interno di un JMenuBar.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Ecco il perchè!! Grazie mille. Ma sapresti dirmi come posso fare per creare un menu in un panel?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    codice:
    JPanel pannello = new JPanel();
    pannello.setLayout(new BorderLayout());
    JMenuBar menuPannello = new JMenuBar();
    JMenu voce1 = new JMenu("Voce1");
    JMenuItem item1 = new JMenuItem("Item1");
    voce1.add(item1);
    menuPannello.add(voce1);
    pannello.add(menuPannello, BorderLayout.NORTH);
    Cmq quello che vuoi fare tu assomiglia piu' ad una JComboBox che ad un JMenu.
    Oppure puoi mettere un bottone con un JPopupMenu.
    Per info su uno di questi componenti, basta inserire il nome del componente su Google e nelle prime posizioni trovi il link alla sezione del tutorial della Sun su swing che spiega questo componente

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Grazie mille!!!mi hai risolto un grosso problema.Avevi proprio ragione per ciò che dovevo realizzare potevo semplicemente,senza ulteriori complicazioni,utilizzare un JComboBox.

    Grazie ancora,a presto!Ciaooo!!

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.