JList + přidání itemu – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

JList + přidání itemu – Java – Fórum – Programujte.comJList + přidání itemu – Java – Fórum – Programujte.com

 

hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #1
-
0
-

Zdravim, mam pomocí netbeans vytvořené okno a v něm JList a přednastavenejma položkama, ale v prubehu behu programu potřebuju položky přidávat...

zkoušel sem si udělat fci:

    public static void setSection(String name) {
        DefaultListModel listModel = new DefaultListModel();
        listModel.addElement(name);
        list = new JList(listModel);
      
    }

ale to mi bohužel nefunguje, po vykonání se nic nestane a žádná položka se nepřidá....

Název Jlistu je "list"

Díky za pomoc

Nahlásit jako SPAM
IP: 93.99.138.–
liborb
~ Redaktor
+18
Guru
5. 10. 2012   #2
-
0
-
Nahlásit jako SPAM
IP: 90.181.216.–
hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #3
-
0
-

Sem zkoušel a stejná reakce... Proč by todle co mám ted nefungovalo?

Nahlásit jako SPAM
IP: 93.99.138.–
liborb
~ Redaktor
+18
Guru
5. 10. 2012   #4
-
0
-

No jestli ten list vytváříš vždycky znovu a znovu, tak ti to nebude fungovat nikdy.

Někde si jednou vytvoříš JList:

DefaultListModel listModel = new DefaultListModel();
JList list = new JList(model);

a pak už jenom pracuješ s obsahem (listModel), třeba:

listModel.add(0, "a");

nebo v tvém případě:

public void setSection(String name) {
	listModel.addElement(name);      
}
Nahlásit jako SPAM
IP: 90.181.216.–
hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #5
-
0
-

#4 liborb
Nějak nechápu, kam mám nacpat teda tu deklaraci?

když jí dam mimo tu třídu tak mi to začne nadávat že proměnná list neexistuje

Nahlásit jako SPAM
IP: 93.99.138.–
hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #6
-
0
-

A když ji vytvořim, že ped ten list dam JList tak to zas hlasi chybu o pra radku nize se se prekrejvaj deklarace

(private static javax.swing.JList list;)

Nahlásit jako SPAM
IP: 93.99.138.–
liborb
~ Redaktor
+18
Guru
5. 10. 2012   #7
-
0
-

Doporučuji investovat těch pár korun do této knížky.

No a jinak to bude nějak takto (rychlo příklad):

import javax.swing.*;
import java.awt.BorderLayout;

public class Okno extends JFrame {
	public static void main(String[] args) {
    
		Okno okno = new Okno();

		okno.setSection("Pokus");
	}

	
	DefaultListModel listModel;
	JList list;


	public Okno() {
		super("Titulek");
		setSize(250, 250);
		setLocation(300,200);


		listModel = new DefaultListModel();
		list = new JList(listModel);

		getContentPane().add(BorderLayout.CENTER, list);
		setVisible(true);
	}

	public void setSection(String name) {
		listModel.addElement(name);      
	}
}
Nahlásit jako SPAM
IP: 90.181.216.–
hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #8
-
0
-

Uz nevim jak to vysvetlit....

Jinak... Mám netbeans, gui kreslim v nem primo, tudiz kod se mi generuje sam, on SI SAM deklaroval promenou list, protoze tak se ten muj prvek jmenuje, ve chvili kdy ho deklaruju znova jen ve tride mimo fci zacne to nadavat pro duplicitni deklaraci...

proste nemuzu deklarovat znova promenou list...

Nahlásit jako SPAM
IP: 93.99.138.–
liborb
~ Redaktor
+18
Guru
5. 10. 2012   #9
-
0
-

Tak používej tu, co ti udělal NetBeans .... jinak na tomto je krásně vidět, že není všechno zlato, co se třpytí :)

Nahlásit jako SPAM
IP: 90.181.216.–
hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #10
-
0
-

Ok tak prave ted mam:

        listModel = new DefaultListModel();
        list = new JList(listModel);
        list.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "2012", "2011", "2010", "2009", "2008", "2007", "2006", "2005" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane1.setViewportView(list);
    private static javax.swing.JList list;
    // End of variables declaration
    static DefaultListModel listModel;

 a nakonec

    public static void setSection(String name) {
        listModel.addElement(name);
 
    }

A stejně nic

Nahlásit jako SPAM
IP: 93.99.138.–
liborb
~ Redaktor
+18
Guru
5. 10. 2012   #11
-
0
-

Jestli se nepletu, tak tady ti NetBeans vyšoupnou ten tvůj model: 

list.setModel(new javax.swing.AbstractListModel()

takže můžeš zkusit něco takového: 

public static void setSection(String name) {
    list.getModel().addElement(name);
}
Nahlásit jako SPAM
IP: 90.181.216.–
hap
~ Anonymní uživatel
11 příspěvků
5. 10. 2012   #12
-
0
-

to jsem zkoušel ale addelement() vubec nejde

Nahlásit jako SPAM
IP: 93.99.138.–
liborb
~ Redaktor
+18
Guru
5. 10. 2012   #13
-
0
-

Co na to říct ... třeba nepoužívej NetBeans. Udělal jsem ti příklad, který je funkční a nepotřebuješ k tomu nic víc než Notepad :). Pokud s Javou začínáš, tak je používání automaticky generovaných kódů vyloženě kontraproduktivní.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.211.–
hap
~ Anonymní uživatel
11 příspěvků
8. 10. 2012   #14
-
0
-

Vyřešeno...


list = new javax.swing.JList();

list.setModel(new javax.swing.AbstractListModel() {
    String[] strings = { "2012", "2011", "2010", "2009", "2008", "2007", "2006", "2005" };
    public int getSize() { return strings.length; }
    public Object getElementAt(int i) { return strings[i]; }
});

list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

listModel = new DefaultListModel();//definice musi byt pod list.setModel
list = new JList(listModel);


jScrollPane1.setViewportView(list);



muzete lock

Nahlásit jako SPAM
IP: 93.99.138.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Podobná vlákna

Smazání nejstaršího itemu — založil Matěj Andrle

Vector + jList — založil marros11

JList - výběr položky — založil Nicolas

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý