Brauche hilfe bei JScrollPane

Smily0412

Mitglied
Hoi, folgendes Problem:

Ich möchte, dass ein ganz einfaches Fenster wie z.B. sowas
Code:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Main {

	public static void main( String[] args ){
		JFrame f = new JFrame();
		JPanel p = new JPanel(null);
		JLabel lbl = new JLabel("blub");
		lbl.setBounds(100,100,100,20);
		p.add(lbl);
		f.setContentPane(p);
		f.setSize(300,300);
		f.setVisible(true);
	}
}

Scrollbar wird. Also wenn labels ausserhalb des sichtbaren berreichs erstellt werden, dass der Benutzer dann an die Stelle scrollen kann.
Ich habe da schon was von JScrollPane gehört, habe aber keine Ahnung, wie ich das verwenden muss.

Kann mir bitte jemand einen kurzen Beispielcode schreiben, damit ich sehe wie das geht?
(Muss nichts großes sein.. so ein Beispiel wie oben reicht mir, ich kann mir dann selbst raussuchen was ich machen muss)
 
Hallo hallo,

Du musst nur das Panel in ein JScrollPane einbetten:

Code:
	public static void main( String[] args ){
		JFrame f = new JFrame();
		JPanel p = new JPanel(null);
		JLabel lbl = new JLabel("blub");
		lbl.setBounds(100,100,100,20);
		p.add(lbl);

                  JScrollPane scroll = new JScrollPane(p);
		f.setContentPane(scroll);

		f.setSize(300,300);
		f.setVisible(true);
	}

so sollte es gehen...

grüße Phil
 
hoi.

phil, bei deinem Code bekomme ich leider keine Scrollbars

MeinerEiner: Sah auf dem ersten blick ganz gut aus, allerdings geht es nicht mehr, wenn ich für das Panel kein Layout setzen möchte:

Code:
class ScrolledPane
		extends 	JFrame
{
	private		JScrollPane scrollPane;

	public ScrolledPane()
	{
		setTitle( "Scrolling Pane Application" );
		setSize( 300, 200 );
		setBackground( Color.gray );

		JPanel topPanel = new JPanel();
		topPanel.setLayout( null );
		getContentPane().add( topPanel );

		//Icon image = new ImageIcon( "main.gif" );
		JLabel label = new JLabel( "Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" );
		label.setBounds(100,100,500,20);
		
		// Create a tabbed pane
		scrollPane = new JScrollPane();
		scrollPane.getViewport().add( label );
		topPanel.add( scrollPane, BorderLayout.CENTER );
	}


	public static void main( String args[] )
	{
		// Create an instance of the test application
		ScrolledPane mainFrame	= new ScrolledPane();
		mainFrame.setVisible( true );
	}
}
 
Code:
 topPanel.setLayout( null );
        
        topPanel.add( scrollPane, BorderLayout.CENTER );
Erstens solltest du dem ScrollPanel dann auch eine Grösse geben, wenn du das Layout des Panels auf null setzt und zweitens kannst du das ScrollPane dann nicht mir BorderLayout Constraints in das Panel einfügen...

Du solltest dich vielleicht mal ein bisserl mit den Swing Grundlagen beschäftigen, meinst du nicht?

*grüssle*
MeinerEiner
 
Zurück