Problém se zobrazéním prvku v JListech – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém se zobrazéním prvku v JListech – Java – Fórum – Programujte.comProblém se zobrazéním prvku v JListech – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
16. 5. 2013   #1
-
0
-

Zdravím, mám program kde prvky uchovávám ve 2 arrayListech kreré se později změní na array[] a zobrazí se ve 2 JList oknech. Když kliknu na jeden z okna CENTER přidá se mi prvek do okna EAST. Mezi arraylistama se změna provede a prvek se po té úspěšně zapíše do txt souboru ale.... nezobrazí se v panelu EAST. Je v jeho Arraylistu ale nezobrazí se v gui. můžete mi poradit jak mám postupovat?

PS: Jsem programátor amatér

zde je kod: http://uloz.to/…ce-chyba-jar

Nahlásit jako SPAM
IP: 88.102.105.–
Reklama
Reklama
17. 5. 2013   #2
-
0
-

Nikdo nic?

Nahlásit jako SPAM
IP: 88.102.105.–
sleepy0
Stálý člen
17. 5. 2013   #3
-
0
-

Z JListom vies viac-menej narabat ako s listom. Cize vies do neho vkladat, vyberat a mazat prvky. A on sa musi updatnut a to zapricini volane metody fire....// uz si nepamatam nazov. Cize ak to chces cez arrayListy (s tym som sa strasne dlho trapil, ako prepojit arraylist s JListom, aj tak som to nakoniec robil tak ze vsetko som za kazdym zmazal a natiahol znova. V tomto je Java strasne zle spravena). Ale ak to nieje nic narocne, tak a nepotrebujes nutne k tomu arraylisty, tak pozivaj JListy.

Nahlásit jako SPAM
IP: 158.195.204.–
17. 5. 2013   #4
-
0
-

prvky z ArrayListu se převedou do Array[] a vloží se do JListu ale je problém že v GUI se to neukáže...resp. neproběhne  aktualizace toho listu.

Nahlásit jako SPAM
IP: 88.102.105.–
sleepy0
Stálý člen
17. 5. 2013   #5
-
0
-

Vytvor si DefaultListModel a predaj ho JListu, ked do neho (vlozis, vymazes) prvok tak by sa ti automaticky mal updatnut JList.

Nahlásit jako SPAM
IP: 158.195.204.–
17. 5. 2013   #6
-
0
-

bohužel mi hlásí chybu a už vážně nevím jak ho tam dostat...

JButton tlac2 = new JButton("Přidat do koše");
        tlac2.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                String valueCENTER = listCENTER.getSelectedValue()+"";
                model.addElement(stringV);
                System.out.println(""+valueCENTER);
                status.setText("Přidáno"); 
               }
           
        });

Nahlásit jako SPAM
IP: 88.102.105.–
17. 5. 2013   #7
-
0
-

DefaultListModel model = new DefaultListModel();
        model.addElement("Vaše komponenty jsou: ");
        listEAST = new JList(model);
        hlavniPanel.add(listEAST,BorderLayout.EAST);
        listEAST.setVisibleRowCount(-1);
        listEAST.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        JScrollPane listScroller = new JScrollPane(listEAST);
        hlavniPanel.add(listEAST,BorderLayout.EAST);

stačí mu ho hodit takto a pak tam házet prvky jo? koukal sem na net a tam měli kluci podobnej problém...jejich řešení mi ale nefungovalo

EDIT: jo vkládat Stringy jdou ale nejde vkládat Stringy ze souboru.

model.addElement("Vaše komponenty jsou: "); = toto jde

int valueCENTER = listCENTER.getSelectedIndex();

model.add(int, object); = tady moc nechápu co vložit

Nahlásit jako SPAM
IP: 88.102.105.–
sleepy0
Stálý člen
17. 5. 2013   #8
-
0
-

no addElement je metoda ktorou pridavas ten prvok, neviem asi to mas String. Tu je nieco co som napisal:

public class ListTest extends JPanel{
	
	DefaultListModel<String> leftListModel = new DefaultListModel<String>();
	DefaultListModel<String> rightListModel = new DefaultListModel<String>();
	JButton toLeft, toRight;
	JList<String> leftList, rightList;
	
	
	public ListTest(String[] array){
		setLayout(new GridBagLayout());
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.fill = GridBagConstraints.VERTICAL;
		gbc.insets = new Insets(0, 30, 0, 30);
		leftList = new JList<String>(leftListModel);
		rightList = new JList<String>(rightListModel);
		this.add(new JScrollPane(leftList), gbc);
		gbc.gridx = 1; 
		this.add(new JScrollPane(rightList),gbc);
		toLeft = new JButton("<<");
		toRight = new JButton(">>");
		gbc.fill = GridBagConstraints.NONE;
		gbc.gridy = 1;
		this.add(toLeft, gbc);
		gbc.gridx = 0;
		this.add(toRight, gbc);
		for(String element : array){
			leftListModel.addElement(element);
		}
		createButtonListeners();
	}
	
	private void createButtonListeners(){
		toRight.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				if(!leftList.isSelectionEmpty()){
					System.out.println("Presuvam");
					int sIndex = leftList.getSelectedIndex();
					rightListModel.addElement(leftListModel.remove(sIndex));
				}
			}
			
		});
		
		toLeft.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				if(!rightList.isSelectionEmpty()){
					System.out.println("Presuvam");
					int sIndex = rightList.getSelectedIndex();
							leftListModel.addElement(rightListModel.remove(sIndex));
				}
			}
			
		});
	}
	
	public static void main(String[] arg){
		String[] el = new String[30];
		for(int i=0; i<30; i++){
			el[i] = "Element "+i;
		}
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(800, 600);
		frame.add(new ListTest(el));
		frame.setVisible(true);
	}
}
Nahlásit jako SPAM
IP: 158.195.204.–
19. 5. 2013   #9
-
0
-

Uplně sem zapoměl poděkovat....děkuji pomohlo :)

Nahlásit jako SPAM
IP: 88.102.105.–
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, 25 hostů

Moderátoři diskuze

 

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