Ich habe ein Label mit Komponenten (Checkboxes) und gezeichneten Inhalten, welches in ein JScrollPane eingebettet ist. Wenn ich jetzt das Label scrolle, bekomme ich die Checkboxes auch außerhalb des JScrollPanes angezeigt, wohingegen mit den gezeichneten Inhalten alles in Ordnung ist. Hier ist der Code für das Panel:
Die Methode addOutput() wird in einer Schleife mehrmals aufgerufen, bei jedem Aufruf kommt eine CheckBox hinzu. Sobald die Größe des Panels die des Viewports vom ScrollPane übersteigt, tritt das oben genannte Problem auf, dass die Checkboxes auch außerhalb des ScrollPanes angezeigt werden (die gezeichneten Grafiken jedoch nicht).
Ich kann mir nicht vorstellen, dass der Fehler beim ScrollPane liegt, denn solange die CheckBoxes nicht im Spiel sind, funktioniert ja alles bestens. Wenn ihr anderer Meinung seid, poste ich den Code für das ScrollPane natürlich auch noch.
Vielen Dank schonmal.
Code:
public class Output() extends JPanel
{
ArrayList alCheck = new ArrayList();
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.YELLOW);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(Color.BLACK);
//hier werden dann noch einige Inhalte gezeichnet...
}
public void addOutput()
{
alCheck.add(new Checkbox(null));
this.add(alCheck.get(alCheck.size()-1));
alCheck.get(alCheck.size()-1).setBounds(10,30*(alCheck.size()-1)+5,14,14);
alCheck.get(alCheck.size()-1).setVisible(true);
alCheck.get(alCheck.size()-1).addItemListener(new ItemListener()
{
//...der ItemListener...
});
this.setPreferredSize(/*...*/) //die PreferredSize des Panels wird bei jedem Aufruf geändert, der Code dazu
//sollte hier aber nicht interessieren...
}
}
Die Methode addOutput() wird in einer Schleife mehrmals aufgerufen, bei jedem Aufruf kommt eine CheckBox hinzu. Sobald die Größe des Panels die des Viewports vom ScrollPane übersteigt, tritt das oben genannte Problem auf, dass die Checkboxes auch außerhalb des ScrollPanes angezeigt werden (die gezeichneten Grafiken jedoch nicht).
Ich kann mir nicht vorstellen, dass der Fehler beim ScrollPane liegt, denn solange die CheckBoxes nicht im Spiel sind, funktioniert ja alles bestens. Wenn ihr anderer Meinung seid, poste ich den Code für das ScrollPane natürlich auch noch.
Vielen Dank schonmal.