Hallo,
das, was ich gerade mit Swing versuche, klingt eigentlich einfach, funktioniert aber trotzdem nicht. Ich habe folgendes Problem:
Ich habe ein JPanel mit GridBagLayout auf dem neben drei Button auch ein weiteres JPanel (NodeHome) liegt. Dieses JPanel soll in ein JScrollPane eingebettet sein und die Größe Dimension(90,160) haben. Es hat ein FlowLayout und bekommt als Inhalt weitere JPanel von der Größe (30,30) als Inhalt.
Das Problem ist, dass ich keinen Scrollbalken bekomme, auch wenn mehr JPanel platziert sind als das NodeHome groß ist.
Ich habe es auch mit einer Idee aus dem Forum versucht (http://www.java-forum.org/awt-swing-swt/22451-problem-jscrollpane-jpane-flowlayout.html) in der über die Anzahl der enthaltenen Elemente die Größe meines JPanels berechne. Allerdings hat das nur dazu geführt, dass mein NodeHome immer größer wird und keinen Scrollbalken bekommt (bis irgendwann kein Platz mehr auf dem äußeren JPanel ist, dann sehe ich nur noch ein kleines Rechteck).
Hier sind einige Codeausschnitte:
Mein NodeHome, das den Scrollbalken bekommen soll
[JAVA=42]public class NodeHomePanel extends JPanel {
public NodeHomePanel() {
this.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
this.setVisible(true);
setAllNodes();
this.setPreferredSize(new Dimension(90,150));
}
private void setAllNodes() {
ArrayList<String> nodes = NodeNames.getAllNodes();
for (int i = 0; i <nodes.size(); i++) {
NodePanel help = new NodePanel(nodes.get(i));
this.add(help);
}
}[/code]
Dieses JPanel hat ein GridBagLayout und enthält mein NodeHome
Ich denke, dass es tatsächlich mit dem FlowLayout zusammenhängt. Hat jemand eine Idee für eine Lösung?
Danke schonmal.
Gruß,
Carolin
das, was ich gerade mit Swing versuche, klingt eigentlich einfach, funktioniert aber trotzdem nicht. Ich habe folgendes Problem:
Ich habe ein JPanel mit GridBagLayout auf dem neben drei Button auch ein weiteres JPanel (NodeHome) liegt. Dieses JPanel soll in ein JScrollPane eingebettet sein und die Größe Dimension(90,160) haben. Es hat ein FlowLayout und bekommt als Inhalt weitere JPanel von der Größe (30,30) als Inhalt.
Das Problem ist, dass ich keinen Scrollbalken bekomme, auch wenn mehr JPanel platziert sind als das NodeHome groß ist.
Ich habe es auch mit einer Idee aus dem Forum versucht (http://www.java-forum.org/awt-swing-swt/22451-problem-jscrollpane-jpane-flowlayout.html) in der über die Anzahl der enthaltenen Elemente die Größe meines JPanels berechne. Allerdings hat das nur dazu geführt, dass mein NodeHome immer größer wird und keinen Scrollbalken bekommt (bis irgendwann kein Platz mehr auf dem äußeren JPanel ist, dann sehe ich nur noch ein kleines Rechteck).
Hier sind einige Codeausschnitte:
Mein NodeHome, das den Scrollbalken bekommen soll
[JAVA=42]public class NodeHomePanel extends JPanel {
public NodeHomePanel() {
this.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
this.setVisible(true);
setAllNodes();
this.setPreferredSize(new Dimension(90,150));
}
private void setAllNodes() {
ArrayList<String> nodes = NodeNames.getAllNodes();
for (int i = 0; i <nodes.size(); i++) {
NodePanel help = new NodePanel(nodes.get(i));
this.add(help);
}
}[/code]
Dieses JPanel hat ein GridBagLayout und enthält mein NodeHome
Java:
private NodeHomePanel nodeHome;
public TopologyView() {
JPanel leftSide = new JPanel();
GridBagConstraints t1 = new GridBagConstraints();
t1.gridy = 1;
nodeHome = new NodeHomePanel();
JScrollPane scrollNodeHome = new JScrollPane();
scrollNodeHome.getViewport().add(nodeHome);
leftSide.add(scrollNodeHome, t1);
allLevels.add(nodeHome);
}
Ich denke, dass es tatsächlich mit dem FlowLayout zusammenhängt. Hat jemand eine Idee für eine Lösung?
Danke schonmal.
Gruß,
Carolin