This is irritating me so bad, I have spent three hours aimlessly trying to get JScrollPane to work on my JList and I can't figure it out.. here is the code, please make the scroll bars work! :sad:

public class ChatServer extends JPanel {

    private JList lstUsers;
    private JScrollPane scroller;

    public ChatServer() {

        lstUsers = new JList (lstUsersItems);
        scroller = new JScrollPane(lstUsers);

        setPreferredSize (new Dimension (646, 556));
        setLayout (null);

        add (lstUsers);

        lstUsers.setBounds (240, 35, 200, 230);


        add(scrollPane, BorderLayout.CENTER);


I have no idea, and after several tutorials and many many syntax changes, it still doesn't work.. Sometimes the JList won't even appear on my form, sometimes it will without a scroll bar and will be uneditable.. The rest of teh code is irrelivant, but it is a chatServer I am writing.. Comming along wonderfully, except for this one little thing.. :cry:

11 Years
Discussion Span
Last Post by jwenting

Never use a null layout!

jList1 = new JList(data);

This should work. You might want to add a minimum size as well to prevent the list from being made smaller and smaller when there's few items in it (until it disappears when there are no items).

jList1.setMinimumSize(new Dimension(100,100));

YAY! :mrgreen: it works! that took a large chunck out of my life, but finally I came up with the following code:

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

public class ScrollBars extends JPanel {
    private JList lst;
    private JScrollPane JSP;

    public ScrollBars() {
        //construct preComponents
        String[] lstItems = {"Item 1", "Item 2", "Item 3", "sdaf", "sadfasd", "asdf"};

        //construct components
        lst = new JList (lstItems);
        JSP = new JScrollPane(lst);

		lst.setMinimumSize(new Dimension(150,100));

        //adjust size and set layout
        setPreferredSize (new Dimension (329, 124));
        setLayout (null);

        //add components
        add (lst);
        add (JSP);


        //set component bounds (only needed by Absolute Positioning)
        JSP.setBounds (165, 15, 150, 100);
        lst.setBounds (165, 15, 150, 100);


    public static void main (String[] args) {
        JFrame frame = new JFrame ("ScrollBars");
        frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add (new ScrollBars());
        frame.setVisible (true);

Oh, and I have to set the Layout to null in order to do absolute positioning! If this is wrong, tell me what to put there to enable absolute positioning like I have it.. The GUI code was generated by GUI Genie and it put that line there.. Unfortunatelty, GUI Genie sucks and it doesn't do JScrollPane... So if you know of a better FREE GUI editor let me know..


Absolute positioning is wrong. It's there for emergency use but defeats the very purpose of using a platform independent user interface library.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.