# JList Scrollen



## jeroen (26. Mrz 2008)

Hi,

ich habe folgen Code:

```
public class Verwaltung extends javax.swing.JDialog 
{
	private JButton ok, abbrechen;
	private JList FBList;

	public Verwaltung(Programm parent)
	{ 
                    setLayout(null);
        
                    ok = new JButton("Ok");
	    ok.setBounds(33, 437, 100, 25);
	    add(ok);
		
		
                    abbrechen = new JButton("Abbrechen");
                    abbrechen.setBounds(166, 437, 100, 25);
                    add(abbrechen);

                    String namen[] = new String[10];
        
                    for(int i=0; i<10; i++)
                    {
        	        namen[i] = "Name: " + String.valueOf(i);
                    }
        
                    FBList = new JList( namen );
                    FBList.setBounds(10, 10, 280, 50);
                    add(FBList);

                   setSize(300,500); 
                setLocationRelativeTo(parent); 
                setVisible(true); 
                }
}
```

Das FBList möchte ich mit jetzt Scrollbar machen. Im Internet taucht für dieses Problem immer folgender Code auf:

```
JScrollPane Pane = new JScrollPane( FBList );
Pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
```
auf. 

Bei mir taucht das SrollPane gar nicht erst auch. Was vermutlich daran liegt das ich ein null-Layout verwende. Wenn ich nun ein Position zu weise, erscheint es zwar. Ist aber nur ein grauer Kasten.

Kann mir einer sagen wie es richtig geht.


----------



## SlaterB (26. Mrz 2008)

```
public class TestGUI
    extends JFrame
{

    public TestGUI()
        throws Exception
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 200);
        setVisible(true);


        new Verwaltung(this);
    }


    public static void main(String[] args)
        throws Exception
    {
        new TestGUI();
    }
}


class Verwaltung
    extends javax.swing.JDialog
{
    private JButton ok, abbrechen;
    private JList fBList;

    public Verwaltung(JFrame parent)
    {
        setLayout(null);

        ok = new JButton("Ok");
        ok.setBounds(33, 437, 100, 25);
        add(ok);


        abbrechen = new JButton("Abbrechen");
        abbrechen.setBounds(166, 437, 100, 25);
        add(abbrechen);

        String namen[] = new String[10];

        for (int i = 0; i < 10; i++)
        {
            namen[i] = "Name: " + String.valueOf(i);
        }

        fBList = new JList(namen);

        JScrollPane sp = new JScrollPane(fBList);
        sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        sp.setBounds(10, 10, 280, 50);
        add(sp);


        setSize(300, 500);
        setLocationRelativeTo(parent);
        setVisible(true);
    }
}
```


----------



## jeroen (26. Mrz 2008)

Vielen Danke.


----------



## jeroen (26. Mrz 2008)

ok doch noch net fertig.
Wie rufe ich jetzt mein getSelectedValues() auf ? 
Ist es teil von sp oder FBList ? Bei beiden geht es irgendwie nicht.


----------



## SlaterB (26. Mrz 2008)

schreibe ans Ende des Verwaltungs-Konstuktors

```
Runnable r = new Runnable()
            {
                public void run()
                {
                    while (true)
                    {
                        System.out.println("index ist: " + fBList.getSelectedIndex());
                        try
                        {
                            Thread.sleep(600);
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }
                    }
                }
            };
        new Thread(r).start();
```
dann bekommst du immer aktuelle Ausgaben, die sich ändern, wenn du in der JList rumklickst,
getSelectedIndex() funktioniert also, wo und wie du das in dein Programm einbauen willst, musst du natürlich selber wissen


----------



## jeroen (26. Mrz 2008)

also habs ich es richtig gesehen das , das nicht geht. deshalb gehen die Event auch nicht (?).


----------



## SlaterB (27. Mrz 2008)

ich weiß nicht wo und wie du das gesehen hast,
meine Antwort enthielt jedenfalls den Satz


> getSelectedIndex() funktioniert also


----------



## jeroen (27. Mrz 2008)

Also ich habs mit noch mal angeguckt. FBList.getSelectedIndex() kann man doch zu jedem beliebigen Zeitpunkt aufrufen. Noch ne Frage wie bekomm ich den ein SelectionEvent hin ?


----------



## SlaterB (27. Mrz 2008)

die JList bzw. deren Model erzeugt Events wenn man darin rumklickt,
willst du auf diese reagieren mit einem Listener?
oder selber zusätzliche Events erzeugen?

bitte immer genau sein,
und dazu noch glaubhaft erklären, was du an Standarderklärungen wie in 
http://java.sun.com/docs/books/tutorial/uiswing/components/list.html
nicht verstehst


----------

