2012-08-09 12 views
10

Utilizzo NetBeans IDE 7.1.2. Quando compilo la mia applicazione ottengo il seguente avvertimento:NetBeans - Avviso JComboBox - argomenti di tipo mancanti per la classe generica JComboBox <E>

avvertimento: [rawtypes] trovato tipo grezzo: JComboBox città = new javax.swing.JComboBox(); argomenti di tipo mancanti per classe generica JComboBox dove E è un tipo di variabile: E estende Object dichiarato in classe JComboBox

Quindi, penso che devo dichiarare la JComboBox come:

JComboBox<String> city = new JComboBox<String>(); 

Ma come faccio questo in NetBeans, usando Matisse (Swing GUI Builder)? Per favore aiuto.

risposta

1

Java 7 ha introdotto i generici su JComboBox. Una soluzione al tuo problema sarebbe quella di utilizzare Java 6.

Scommetto che l'ultima versione di Netbeans (7.2) avrà una soluzione per questo (anche se non sono positivo).

Altrimenti, se ricordo bene, è possibile visualizzare il codice generato da Netbeans. Se è così, potresti essere in grado di aggiungere tu stesso la discussione generica. Sono passati molti mesi da quando ho armeggiato con Netbeans però ...

Inoltre, se il Netbeans consente, è possibile aggiungere il @SupressesWarnings annotazioni sopra la dichiarazione JComboBox (o anche al di sopra della dichiarazione di classe, anche se cambia il suo campo di applicazione) . Sarebbe qualcosa di simile:

@SuppressWarnings("rawtypes") 
JComboBox city = new JComboBox(); 

Ci sono un sacco di opzioni, ma Netbeans può tenere indietro dalla attuazione di alcune di esse.

+0

Nick Ho provato a modificare il codice in: city = new javax.swing.JComboBox (); (NetBeans non mi consente di modificare le variabili di dichiarazione, quindi la mia città è definita come città privata javax.swing.JComboBox;). Quando l'ho fatto, ho ricevuto il seguente avviso: argomenti di tipo ridondanti nella nuova espressione (utilizzare invece l'operatore diamond). – jadrijan

+1

Non sono sicuro che sarete in grado di aggirare l'avvertimento quindi senza eseguire il downgrade della versione di Java o dell'aggiornamento dell'IDE di Netbeans. Fortunatamente, è solo un avvertimento quindi non influenzerà il tuo codice reale. Se ti dà fastidio, puoi provare ad aggiungere questa riga sopra la tua dichiarazione: '@SuppressWarnings (" rawtypes ")' Aggiungerò anche questo alla risposta. Non conosco un modo per disattivare gli avvisi del compilatore in Netbeans - qualcun altro potrebbe saperlo. –

+0

Grazie mille Nick. Almeno ora so che non sto facendo nulla di sbagliato secondo la codifica. Spero che questo sia corretto nella v7.2, non l'ho ancora provato, in attesa che Oracle lo rilasci con JDK. – jadrijan

15

In Netbeans 7.2 è possibile fare clic sulla sezione Codice per JComboBox, quindi scrivere il tipo in "Parametri tipo", nel proprio caso: <String>.

+4

Questo ha aiutato, solo un piccolo miglioramento per chiarire come arrivare alla sezione del codice: fare clic con il tasto destro del mouse su JComboBox, scegliere _Properties_, selezionare la sezione _Code_ (nella parte superiore della finestra delle proprietà). _Type Parameters_ è vicino alla parte superiore. – chr

+0

@chr e ricorda di scrivere il parametro di tipo _includendo_ le parentesi angolari. –

Problemi correlati