2010-01-22 3 views
7

J'ai conçu une interface graphique Swing à l'aide de l'IDE Netbeans et cette interface graphique contient un JList.Comment définir le ListModel d'un JList dans Netbeans?

Par défaut, il utilise AbstractListModel pour le passer en argument dans le constructeur JList pour créer ce JList.

Je veux spécifier quelque part dans le Netbeans pour passer DefaultListModel comme le modèle à passer dans ce JList de sorte que plus tard je puisse le récupérer pour faire des changements dans le listModel.

Comment puis-je faire cela.

Répondre

11

Vous avez deux façons de le faire:

1) Dans votre code appel manuellement list.setModel() partout après initComponents() est appelée. 2) Faites-le via NetBeans - Faites un clic droit sur la liste, allez dans "Personnaliser le code". La première section de code est l'appel du constructeur de la liste. Changez la liste déroulante de "Code par défaut" en "Création personnalisée" et insérez simplement votre ListModel dans l'appel du constructeur. Vous pouvez le faire en mettant à nouveau

javax.swing.JList(new DefaultListModel()) 

ou par instanciation votre ListModel avant l'appel à initComponents() dans le code et puis en faisant

javax.swing.JList(defaultModel); 
+0

pourquoi, après initComponents() et pas avant? – Thufir

+1

Cela faisait un moment, mais je crois que c'était parce que le JList n'est pas réellement instancié jusqu'à ce que initComponents() soit appelé. –

5

que je fais habituellement de cette façon dans Netbeans
1. Sélectionnez le JList
2. Dans modèle propriété, sélectionnez code personnalisé et insérez le l Nom istModel (déclarée en 3ème étape)
3. annoncez DefaultListModel listModel = new DefaultListModel(); en vue de code
4. changement de déclaration ListModel à accepter une liste ou similaire