Zdvojený výstup z JList – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zdvojený výstup z JList – Java – Fórum – Programujte.comZdvojený výstup z JList – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Nicolas0
Návštěvník
24. 5. 2012   #1
-
0
-

Ahoj, já už fakt nevím kde je chyba :-(

Když vyberu položky z JListu, tak mně to vypíše vždycky 2x, ale tím cyklem to podle mě není.

Mohli byste mně prosím poradit, viz. kód níž.

Díky, N.

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class MainClass {
    public static void main(String[] args) {
        nazev apl = new nazev();
    }
}
class nazev extends JFrame {

int varA;
String varB;
String varC;

JPanel panel = new JPanel();
String[] data1 = {"AAA","BBB","CCC","DDD","EEE"};
JList list1 = new JList(data1);
DefaultListModel data2 = new DefaultListModel();
JList list2 = new JList(data2);


public nazev () {

    setSize (300,300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible (true);
    getContentPane().setLayout (new BorderLayout());
    getContentPane().add(panel,BorderLayout.CENTER);

    panel.add(list1);
    panel.add(list2);
    list2.setPreferredSize(new Dimension(220,220));

    list1.addListSelectionListener( new ListSelectionListener100());
    }

class ListSelectionListener100 implements ListSelectionListener {
        public void valueChanged(ListSelectionEvent e) {

Object[] selected = list1.getSelectedValues();

varB = "";
int i = 0;
int n = selected.length;

while (i < n)
{
if (i > 0) varB += ",";

varB += "'" + selected[i] + "'";

i++;
String[] items = {varB};
data2.add(varA,items[varA]);

            }
        }
    }
}

Nahlásit jako SPAM
IP: 62.209.192.–
Nicolas

Quis ut Deus?
Reklama
Reklama
liborb
~ Redaktor
+18
Guru
24. 5. 2012   #2
-
0
-

Kdyby si udělal to, co jsem ti radil :) ...

Stačilo přidat jeden řádek:

while (i < n) {
	System.out.println(i + " - " + n);
	if (i > 0) varB += ",";

// atd.


a hned by si věděl, že se ta funkce volá 2x po sobě .... důvody si najdi :) ... takže stačí na začátek dát:

class ListSelectionListener100 implements ListSelectionListener {
        public void valueChanged(ListSelectionEvent e) {

if (e.getValueIsAdjusting())
        return;

Object[] selected = list1.getSelectedValues();



// atd.

Nahlásit jako SPAM
IP: 78.80.52.–
Nicolas0
Návštěvník
24. 5. 2012   #3
-
+1
-
Zajímavé

#2 liborb
Zase pozdě :-) ale tvou radu si beru skutečně k srdci:

http://nicomp.hubpages.com/hub/Introduction-to-Debugging-in-Java-and-Netbeans

Díky moc, důvod je, že se akce vyvolá pokaždé když na to klikneš myší a druhá když myš uvolníš:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4323107

Nahlásit jako SPAM
IP: 62.209.192.–
Nicolas

Quis ut Deus?
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, 24 hostů

Podobná vlákna

Vector + jList — založil marros11

JList + přidání itemu — založil hap

Gui - JList výpis — založil Ed

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý