Announcement

Collapse
No announcement yet.

Brauche dringend Hilfe zu ScrollPane-Listen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Brauche dringend Hilfe zu ScrollPane-Listen

    In meinem Programm soll sich auf Knopfdruck im aktuellen Frame ein JList-Feld mit ScrollPane-Funktion öffnen.<br> Der Code für das JList-Feld befindet sich in einer exra Methode ("liste"),<br> welche widerum von einer anderen Methode aufgerufen wird. Mein Problem ist nun folgendes: Wenn ich die JList nicht in ein ScrollPane<br> einbette und aufrufe, also das Feld ohne die Scroll-Funktion lasse, funktioniert alles einwandfrei. Sobald ich jedoch das<br> ScrollPane mit einbeziehe, wird auf einmal nichts mehr angezeigt. Hier der Code der Methode:<br>
    <br>
    <pre>
    void liste()
    {
    String[] DATA = {"Test", "Test"};
    list_search = new JList(DATA);
    list_search.setSelectionMode(ListSelectionModel.MU LTIPLE_INTERVAL_SELECTION);
    list_search.setSelectedIndex(2);
    list_search.setBounds(250, 50, 320, 310);
    JScrollPane sp = new JScrollPane(list_search);
    getContentPane().add(sp);
    }
    </pre>
    <br>
    Ich hab jetzt 2 Stunden rumprobiert und bin bisher zu keinem Ergebnis gekommen.<br> Es wäre wirklich super, wenn mir jemand von Euch helfen könnte, da ich die JList nicht in einem extra Frame öffnen möchte.<br>
    <br>

  • #2
    Hi Kevin,<br>
    <pre>
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class ListTest extends JFrame {

    private int toggle = 0;

    ListTest() {
    setDefaultCloseOperation(WindowConstants.DISPOSE_O N_CLOSE);
    String[] DATA = {"Test", "Test"};
    JList list_search = new JList(DATA);
    list_search.setSelectionMode(ListSelectionModel.MU LTIPLE_INTERVAL_SELECTION);
    list_search.setSelectedIndex(1); // list_search.setSelectedIndex(2): index 2 existiert nicht!
    final JScrollPane sp = new JScrollPane(list_search);
    sp.setPreferredSize(new Dimension(100, 300));
    final JPanel p = new JPanel(new BorderLayout());
    p.add(sp, BorderLayout.CENTER);
    sp.setVisible(false);
    JButton b = new JButton("Liste anzeigen/verdecken");
    b.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    if (toggle++ % 2 == 0) {
    sp.setVisible(true);
    }
    else {
    sp.setVisible(false);
    }
    p.revalidate(); // that's the magic line to make sp really visible
    }
    });
    p.add(b, BorderLayout.SOUTH);
    getContentPane().add(p);
    pack();
    setSize(new Dimension(500, 500));
    }

    public static void main (String args[]) {
    new ListTest().setVisible(true);
    }

    }
    </pre>
    Gruss Klau

    Comment

    Working...
    X