Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47

    Problema JComboBox (the Argument is too complicated)

    Sto creando un JComboBox contenuto in un panel tramite Visual Editor per eclipse.
    Il problema è che non riesco a riempire il JcomboBox.
    In questo caso lo vorrei riempire con un array(con nome "menu") il cui contenuto varia secondo alcuni metodi che ho scritto in altre classi.
    Questi metodi li ho inseriti nel costruttore:
    codice:
    public Menu(ArrayList listalimentipan,(...)) {
    		super();
    		initialize();
    		menu = new String[100];
    		CreaMenu cmr=new CreaMenu();
    		menu=cmr.CreazioneMenu(listacorretta, menu,n_linee);
    		System.out.println("primo elemento array:"+menu[0]);
    		System.out.println("secondo elemento array:"+menu[1]);
    		
    		
    	}
    Ecco,con i due System.out.println verifico che effettivamente l'array è riempito(entrambi mi scrivono in console il relativo contenuto).
    Il problema è che non riesco ad inserire l'array all'interno del JComboBox!!
    codice:
    private JComboBox getMenu() {
    		if (Menu == null) {
    			Menu = new JComboBox();
    			Menu.setBounds(new Rectangle(61, 66, 369, 34));
    		}
    		return Menu;
    	}
    Se decido di scrivere all'interno delle parentesi di JComboBox l'array che mi serve ( Menu = new JComboBox(menu); ) mi da sul visual editor l'errore "the argument "menu" is too complicated" e in console,dopo che l'ho avviato, mi manda l'eccezione NullPointerException.
    Qualcuno saprebbe aiutarmi a risolvere questo problema?
    Grazie in anticipo.

    PS:Se invece mando in esecuzione senza inserire "menu" all'interno del JComboBox il codice funziona perfettamente...e il JComboBox rimane vuoto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    up.Qualche consiglio?

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da ypsilonp
    up.Qualche consiglio?
    Sì, ricontrolla la sintassi: hai scritto Menu con la M maiuscola...

    codice:
    private JComboBox getMenu() {
    		if (Menu == null) {
    			Menu = new JComboBox();
    			Menu.setBounds(new Rectangle(61, 66, 369, 34));
    		}
    		return Menu;
    	}
    quello è il nome di una classe del package java.awt (a meno che tu non abbia da qualche parte effettivamente una variabile con un nome così lessicograficamente orrendo e sbagliato), che non ha nulla a che vedere con la variabile "menu" (correttamente con la "m" minuscola) che hai creato nel costruttore.

    Certo che sforzarsi di usare gli ambienti RAD per le componenti grafiche è sempre peggio... soprattutto quando questi ambienti sfornano descrizioni d'errore così esaustive come "too complicated". Poi, ognuno sceglie i mali che vuole...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Originariamente inviato da LeleFT
    Sì, ricontrolla la sintassi: hai scritto Menu con la M maiuscola...

    codice:
    private JComboBox getMenu() {
    		if (Menu == null) {
    			Menu = new JComboBox();
    			Menu.setBounds(new Rectangle(61, 66, 369, 34));
    		}
    		return Menu;
    	}
    quello è il nome di una classe del package java.awt (a meno che tu non abbia da qualche parte effettivamente una variabile con un nome così lessicograficamente orrendo e sbagliato), che non ha nulla a che vedere con la variabile "menu" (correttamente con la "m" minuscola) che hai creato nel costruttore.

    Certo che sforzarsi di usare gli ambienti RAD per le componenti grafiche è sempre peggio... soprattutto quando questi ambienti sfornano descrizioni d'errore così esaustive come "too complicated". Poi, ognuno sceglie i mali che vuole...


    Ciao.
    Ehm..sinceramente non so se il problema è il nome...
    Tanto per chiarezza il "menu" in minuscolo è l'array mentre "Menu" con la prima lettera maiuscola è il jcombobox.
    Provo a cambiare nome.
    EDIT:Ho provato e mi dà lo stesso errore
    Adesso ho provato a creare la jcombobox senza l'auito dell'editor scrivendo:
    codice:
    JComboBox cucmen = new JComboBox(menu);
    							cucmen.setSelectedIndex(2);
    Teoricamente il codice va...però non viene visualizzata la jcombobox.
    Devo aggiungere qualche istruzione?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Allora prova a postare un po' più di codice... tieni sempre presente che la lettera maiuscola andrebbe usata SOLO ed ESCLUSIVAMENTE per i nomi delle classi... non per i nomi delle variabili (oggetti o primitive che siano) o dei metodi. In questo modo eviti di commettere errori grossolani e faciliti la lettura anche a chi deve poi aiutarti.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Grazie per la velocissima risposta..
    Sinceramente,come ho scritto nella mia modifica nel precedente post,ho provato a creare una jcombobox senza l'ausilio dell'editor:
    codice:
    ComboBox cucmen = new JComboBox(menu);
    							cucmen.setSelectedIndex(2);
    Il codice non dà errori,però la jcombobox non viene visualizzata.
    Quale informazione ho tralasciato?

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Allora, anzitutto stai dichiarando un oggetto di tipo ComboBox, ma lo crei come un JComboBox... questo credo sia un errore di trascrizione, altrimenti non compilerebbe nemmeno.

    Le due righe di codice che hai postato servono a creare il JComboBox e a inizializzare la sua posizione iniziale... non certo a posizionarlo all'interno di un componente per renderlo visibile...

    Da qualche parte dovrai effettuare qualcosa di questo tipo:

    codice:
    tuoComponente.add( cucmen );
    Ovvero, aggiungere il JComboBox ad un componente (tipicamente un JPanel)... potrebbe anche essere fatto all'interno del costruttore o di un qualunque metodo della classe che rappresenta il componente su cui visualizzarlo, nel qual caso richiamerai semplicemente add( cucmen );


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Originariamente inviato da LeleFT
    Allora, anzitutto stai dichiarando un oggetto di tipo ComboBox, ma lo crei come un JComboBox... questo credo sia un errore di trascrizione, altrimenti non compilerebbe nemmeno.
    Quando scrivo ComboBox mi dà errore! :O
    Dice "can't be resolved as to a type"!
    Comunque intanto sto creando ,come mi hai indicato, il jpanel.

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da ypsilonp
    Quando scrivo ComboBox mi dà errore! :O
    Dice "can't be resolved as to a type"!
    Infatti devi scrivere JComboBox, con la J... mi riferivo al codice che hai postato tu dove nella prima riga mancava la J e ho immaginato potesse essere un errore di battitura nel riportare il codice qui nel forum. La classe si chiama JComboBox e non ComboBox.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Originariamente inviato da LeleFT
    Infatti devi scrivere JComboBox, con la J... mi riferivo al codice che hai postato tu dove nella prima riga mancava la J e ho immaginato potesse essere un errore di battitura nel riportare il codice qui nel forum. La classe si chiama JComboBox e non ComboBox.

    Ciao.
    Ti ringrazio per i continui aiuti e la pazienza..
    Se scrivo JComboBox mi dà errore affianco a "JPanel.add(cucmem)"("cannot make a static reference to the non static method add(Component) from the type Container").
    Cosa devo cambiare?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.