ScrollPane nicht sichtbar bei JList

markuscjb

Grünschnabel
Hallo zusammen,

ich habe ein kleines Problem beim anzeigen des Scrollbalkens bei einer JList. Ich bin noch Anfänger, habe jetzt ein Jahr Java hintermier.
Vielleicht kann mir jemand bei diesem Problem helfen.

Hier mal der Code:

PHP:
DefaultListModel listModel = new DefaultListModel();
		listModel.addElement("Debbie Scott");
		listModel.addElement("Scott Hommel");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");


		
		Statusinfo=new JList(listModel);
		Statusinfo.setBounds(20, 260, 250, 80);
		Statusinfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		Statusinfo.setSelectedIndex(0);
    
		Statusinfo.setVisibleRowCount(15);

        JScrollPane listScrollPane = new JScrollPane(Statusinfo);
		listScrollPane.setBounds(275, 265, 10, 80);
 
Hallo,

dein Code ist eigentlich korrekt. Ich weiß jetzt nicht wie deine GUI aussieht, aber kann es vielleicht sein, dass noch keine Scrollbars dargestellt werden müssen?

Die Scrollbars werden erst dargestellt, wenn ein Element der Liste nicht mehr sichtbar wäre.

MFG

Sascha
 
Poste bitte mal den ganzen Code der GUI.

Die Liste befindet sich nämlich gar nicht in Scrollpane.

MFG

Sascha
 
PHP:
	JFrame frame;
	
	JProgressBar JPuploadbar;
	JButton JBstart;
	JButton JBAccessSelect;
	JLabel JLAccessPfad;
	JLabel JLstatus;
	JLabel JLDBPasswort;
	JTextField DBPasswort;
	JList Statusinfo;
	
	Auswahl aktion;


	
	GUI()
	{
		frame=new JFrame("?");
		frame.setBounds(450, 300, 310, 390);
		frame.setLayout(null);
		
		aktion=new Auswahl();
		
		JPuploadbar=new JProgressBar();
		JPuploadbar.setStringPainted(true);
		JPuploadbar.setMinimum(0);
		JPuploadbar.setMaximum(100);
		JPuploadbar.setBounds(15, 230, 260, 20);
		
		JBAccessSelect=new JButton("Access Datei auswählen");
		JBAccessSelect.setBounds(30, 50, 230, 20);
		JBAccessSelect.addMouseListener(aktion);
		
		JLAccessPfad=new JLabel("");
		JLAccessPfad.setBounds(10, 20, 280, 20);
		
		JBstart=new JButton("Start Upload");
		JBstart.setBounds(70, 160, 150, 30);
		JBstart.addMouseListener(aktion);
		
		JLstatus=new JLabel("");
		JLstatus.setBounds(90, 210, 150, 20);

		
		JLDBPasswort=new JLabel("DB Passwort:");
		JLDBPasswort.setBounds(10, 100, 100, 20);
		
		DBPasswort=new JTextField();
		DBPasswort.setBounds(110, 100, 150, 20);
		
		
		//List Box
		DefaultListModel listModel = new DefaultListModel();
		listModel.addElement("Debbie Scott");
		listModel.addElement("Scott Hommel");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");


		
		Statusinfo=new JList(listModel);
		Statusinfo.setBounds(20, 260, 250, 80);
		Statusinfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		Statusinfo.setSelectedIndex(0);
    
		Statusinfo.setVisibleRowCount(15);

        JScrollPane listScrollPane = new JScrollPane(Statusinfo);
		listScrollPane.setBounds(275, 265, 10, 80);
		
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		frame.add(JPuploadbar);
		frame.add(JBstart);
		frame.add(JLstatus);
		frame.add(DBPasswort);
		frame.add(JLDBPasswort);
		frame.add(JBAccessSelect);
		frame.add(JLAccessPfad);
		frame.add(Statusinfo);
		frame.add(listScrollPane);
		frame.setVisible(true);
		
	}
	class Auswahl extends MouseAdapter
	{
 
Ok schaut schon mal nicht schlecht aus, nur hab ich jetzt das Problem das die ListBox unter Scrollbar ist, und daher nicht sichtbar ist. Hab ein weilchen probiert aber ich komme nicht darauf. So sieht jetzt das Fenster aus:
http://bildupload.sro.at/p/258091.html

Und hier der Code:

PHP:
public class GUI
{

	JFrame frame;
	
	JProgressBar JPuploadbar;
	JButton JBstart;
	JButton JBAccessSelect;
	JLabel JLAccessPfad;
	JLabel JLstatus;
	JLabel JLDBPasswort;
	JTextField DBPasswort;
	JList Statusinfo;
	
	Auswahl aktion;

	
	GUI()
	{
		frame=new JFrame("?");
		frame.setBounds(450, 300, 310, 390);
		frame.setLayout(null);
		
		aktion=new Auswahl();
		
		JPuploadbar=new JProgressBar();
		JPuploadbar.setStringPainted(true);
		JPuploadbar.setMinimum(0);
		JPuploadbar.setMaximum(100);
		JPuploadbar.setBounds(15, 230, 260, 20);
		
		JBAccessSelect=new JButton("Access Datei auswählen");
		JBAccessSelect.setBounds(30, 50, 230, 20);
		JBAccessSelect.addMouseListener(aktion);
		
		JLAccessPfad=new JLabel("");
		JLAccessPfad.setBounds(10, 20, 280, 20);
		
		JBstart=new JButton("Start Upload");
		JBstart.setBounds(70, 160, 150, 30);
		JBstart.addMouseListener(aktion);
		
		JLstatus=new JLabel("");
		JLstatus.setBounds(90, 210, 150, 20);

		
		JLDBPasswort=new JLabel("DB Passwort:");
		JLDBPasswort.setBounds(10, 100, 100, 20);
		
		DBPasswort=new JTextField();
		DBPasswort.setBounds(110, 100, 150, 20);
		
		
		//List Box
		DefaultListModel listModel = new DefaultListModel();
		listModel.addElement("Debbie Scott");
		listModel.addElement("Scott Hommel");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");
		listModel.addElement("Alan Sommerer");


		
		Statusinfo=new JList(listModel);
		Statusinfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		Statusinfo.setSelectedIndex(-1);
    
		Statusinfo.setVisibleRowCount(15);

        JScrollPane listScrollPane = new JScrollPane(Statusinfo);
        //listScrollPane.setPreferredSize(new Dimension(250, 80));

        listScrollPane.setBounds(250, 265, 20, 80);
		
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		frame.add(JPuploadbar);
		frame.add(JBstart);
		frame.add(JLstatus);
		frame.add(DBPasswort);
		frame.add(JLDBPasswort);
		frame.add(JBAccessSelect);
		frame.add(JLAccessPfad);

		frame.add(listScrollPane);
		frame.setVisible(true);
 
Die JList ist nicht unter der Scrollpane. Das ist alles schon richtig so. Du musst halt nur noch die Größe richtig zuweisen.
Du hast die Scrollpane nur 20 Pixel breit eingestellt und so wird sie auch angezeigt. Du musst bedenken, dass bei der Pane nicht nur die Scrollbars gemeint sind, sondern auch das was du in die Pane hängst. In diesem Fall ist das die JList. Du brauchst der JList in diesem Fall keine Größe zuweisen. Du setzt einfach die Position und die Größe der ScrollPane als wäre diese die Liste.

Noch so nebenbei Variablen werden in Java klein geschrieben.

MFG

Sascha
 
Wunderbar Super. Ok gut, manche Steuerelemente sind etwas am Anfang schwierig hab ich festgestellt.

Aber es hat geklappt.

Danke dir
 
Zurück