Vkládání do JListu – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vkládání do JListu – Java – Fórum – Programujte.comVkládání do JListu – Java – Fórum – Programujte.com

 

maca.d
~ Anonymní uživatel
1 příspěvek
23. 5. 2013   #1
-
0
-

Zdravím, mám problém s přidáváním věcí do JListu. Pracuji na databázi čtenářů a po načtení (po vyz/zap aplikace), když chci přidat nového čtenáře, tak se JList smaže a čtenáři se přidavají od začátku. Stará databáze se ještě načte v pořádku, čtenáře tam vidím, ale v momentě kdy zadám jmeno, prijmeni a chci je pridat, tak vse zacne zas nanovo.

panelHorni = new JPanel();
        
        listModel = new DefaultListModel();
        listCtenaru = new JList(listModel);
        
                
        FileInputStream fis = new FileInputStream("myjlist.bin");
        ObjectInputStream ois = new ObjectInputStream(fis);
        
        listCtenaru = (JList)ois.readObject();
        
        listScroll = new JScrollPane();
        listScroll.add(listCtenaru);
        
        listCtenaru.setPreferredSize(new Dimension(350, 417));
        listCtenaru.setBackground(new Color(238,238,238));
        
        panelHorni.add(listCtenaru);
        
        return panelHorni;

+ action listener

public void actionPerformed(ActionEvent e) {
            try { 
                String jmeno = pole1.getText();
                String prijmeni = pole2.getText();
                
                listModel.addElement(jmeno +" "+ prijmeni);
                ulozeniCtenaru();
               
                pole1.setText("");
                pole2.setText("");
                pole1.requestFocus();
Nahlásit jako SPAM
IP: 88.101.132.–
sleepy0
Stálý člen
31. 5. 2013   #2
-
0
-

Ahoj, mozno si si to uz vsimol, ale ty mas listModel, ktory vobec nema referenciu v JListe, ktory si prave nacital. Takze mas niekolko moznosti ako to vyriesit. bud z toho nahraneho JListu si vitiahnes jeho ListModel ( getModel() ). Alebo to nebudes ukladat, ako JList ale ako nejkau inu kolekciu a JList si za kazdym vytvoris.

Riesenie 1:

panelHorni = new JPanel();

JList listCtenaru = null;
ListModel listModel = null;

listScroll = new JScrollPane()

FileInputStream fis = new FileInputStream("myjlist.bin");
ObjectInputStream ois = new ObjectInputStream(fis);
try{ 

	listCtenaru = (JList)ois.readObject();
	listModel = listCtenaru.getModel();
}
catch(IOExceptio ioe){
// toto je ked nieco nebude fungovat, aby nedol listCtenaru a listModel nastavene na null
	ioe.printStackTrace();
	listModel = new DefaultListModel();
	listCtenaru = new JList(listModel);
}
catch(ClassNotFoundExceptio cce){
	cnfe.printStackTrace();
	listModel = new DefaultListModel();
	listCtenaru = new JList(listModel);
}

listScroll.add(listCtenaru);
// dalej to pokracuej normalen ako to mas

Riesenie 2:

// Pozor tato metoda neprecita ten subor co mas ty, lebo ty tam mas uplne iny Object
// Na to treba vytvorit iny subor.
public ArrayList<String> loadData(String fileName){
	ArrayList<String> data = null;
	try{
		ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileName)));
		try{
			data = (ArrayList<String>) ois.readObject();
		}
		finally{
			ois.close();
		}
		
	}
	catch(IOException ioe){
		ioe.printStackTrace();
		data = new ArrayList<String>();
	}
	catch(ClassNotFoundException cnfe){
		cnfe.printStackTrace();
		data = new ArrayList<String>();
	}
}

public void saveData(String fileName, ArrayList<String> data){
	if(data == null)
		return;
	try{
		ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(fileName));
		try{
			oos.writeObject(data);
		}
		finally{
			oos.close();
		}
	}
	catch(IOException ioe){
		ioe.printStackTrace();
	}
}

JPanel panelHorni = new JPanel();
JListModel listModel = new JListMode();
JList list = new JList(listModel);

for(String readerName : loadData("citatelia.txt")){
	listModel.add(readerName);
}
// a tak dalej
Nahlásit jako SPAM
IP: 213.215.67.–
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, 1 host

Podobná vlákna

Java Scroll v JListu — založil Pan Mluvčí

Kombinace čtyř JListů — založil Nicolas

Vkládání do listboxu — založil wickzig

VKladani DCOM — založil Pavel

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ý