Hej
Hab in einem JApplet eine JScrollPane mit einem JPanel auf dem ich den Inhalt einer Liste, deren Inhalt sich ändert, darstellen will.
Wenn ein neues Element in die Liste eingefügt wird, soll automatisch nach unten/rechts gescrollt werden, also zum Ende.
Das automatische Scrollen soll nur passieren, wenn repaint() aus drawList() aufgerufen wird.
Habs schon mit
in drawList() probiert, aber dann zeigt der nach der Aktualisierung nix an. Erst wenn man scrollt oder die Komponente neu gezeichnet wird.
ScrollBar extrahieren und setValue() hat gar nix gebracht.
Irgendwelche Vorschläge?
Danke schon mal im Voraus.
Hab in einem JApplet eine JScrollPane mit einem JPanel auf dem ich den Inhalt einer Liste, deren Inhalt sich ändert, darstellen will.
Wenn ein neues Element in die Liste eingefügt wird, soll automatisch nach unten/rechts gescrollt werden, also zum Ende.
Code:
[...]
private class ListManager
{
[...]
public void drawList()
{
listPanel.repaint();
[...]
}
}
private class ListPanel extends JPanel
{
private Dimension area = new Dimension(0, 0);
public ListPanel()
{
setOpaque(true);
setBackground(Color.WHITE);
}
public void paintComponent(Graphics g)
{
Graphics2D g2D = (Graphics2D) g;
super.paintComponent(g2D);
g2D.setFont(myFont);
FontMetrics fm = g2D.getFontMetrics();
area = activeList.drawList(g2D, fm);
setPreferredSize(area);
revalidate();
}
}
[...]
Das automatische Scrollen soll nur passieren, wenn repaint() aus drawList() aufgerufen wird.
Habs schon mit
Code:
listScrollPane.getViewport().setViewPosition(new Point((int) area.getWidth(), (int) area.getHeight()));
ScrollBar extrahieren und setValue() hat gar nix gebracht.
Irgendwelche Vorschläge?
Danke schon mal im Voraus.