Ich möchte auf ein JPanel (Search) ein JScrollPane setzen, welches wiederrum ein JPanel (Output) enthalten soll. Ich habe output so gewählt, dass es wesentlich größer als das JScrollPane ist, jedoch sind die Scrollbalken nicht aktiv.
Oft habe ich gesehen, dass folgende Methoden verwendet werden, ohne jedoch herauszubekommen, was sie bedeuten. Die API erklärt da auch nichts weiter...
1. spScroll.getViewport().setView(jp);
2. spScroll.getViewport().setViewSize(new Dimension(x,y));
Ich vermute erstere Methode legt den Client des JScrollPanes fest? Für die zweite habe ich nicht einmal eine Vermutung.
Außerdem habe ich in einem anderen Forum gelesen, dass man möglichst nicht mit setbounds(), sondern mit setLocation() und setPreferredSize() arbeiten sollte. Warum? Ich habe das auch versucht, aber wenn ich das tue, bekomme ich im Panel das JScrollPane gar nicht erst angezeigt.
Fragen über Fragen, die ganze Thematik ist mir noch ziemlich unverständlich. Ich hoffe mir kann jemand weiterhelfen.
Code:
public class Search extends JPanel
{
Search(int width, int height,final ArrayList data)
{
output = new Output(180,20,800, 800);
spScroll = new JScrollPane( output,
ScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
spScroll.setBounds(170,10,400, 400);
spScroll.setAutoScrolls(true);
this.add(spScroll);
this.updateUI();
}
}
public class Output extends JPanel
{
Output(int x, int y,int width, int height)
{
this.setBounds(x,y,width,height);
this.setForeground(Color.RED);
}
@Override
public void paint(Graphics g)
{
g.drawString("test",500,500);
}
}
Oft habe ich gesehen, dass folgende Methoden verwendet werden, ohne jedoch herauszubekommen, was sie bedeuten. Die API erklärt da auch nichts weiter...
1. spScroll.getViewport().setView(jp);
2. spScroll.getViewport().setViewSize(new Dimension(x,y));
Ich vermute erstere Methode legt den Client des JScrollPanes fest? Für die zweite habe ich nicht einmal eine Vermutung.
Außerdem habe ich in einem anderen Forum gelesen, dass man möglichst nicht mit setbounds(), sondern mit setLocation() und setPreferredSize() arbeiten sollte. Warum? Ich habe das auch versucht, aber wenn ich das tue, bekomme ich im Panel das JScrollPane gar nicht erst angezeigt.
Fragen über Fragen, die ganze Thematik ist mir noch ziemlich unverständlich. Ich hoffe mir kann jemand weiterhelfen.