Hallo, nachdem ich bei meinem Problem:Altes Problem
nicht so wirklich weiter gekommen bin hab ich noch mal nachgedacht und hab mir jetzt die HTML Fähigkeiten des JPanels zu nutze gemacht um den Text umzubrechen.
Gut ich füge die komponente ein und setzte den Scrollbar auf Maximum. Aber dieses Maximum ist leider nur das Maximum was er vor dem hinzufügen hatte. Erstelle ich einen zweiten knopf der ihn unabhängig vom ersten auf Maximum setzt klappt es.
Also fehlt ihm irgend etwas wenn ich direkt nach dem hinzufügen den Scrollbar auf Max setzen möchte.
Vieleicht kennt ja jemand die Antwort wie man das Problem lösen könnte.
Hier mal das ganze als kleiner Testcode:
nicht so wirklich weiter gekommen bin hab ich noch mal nachgedacht und hab mir jetzt die HTML Fähigkeiten des JPanels zu nutze gemacht um den Text umzubrechen.
Gut ich füge die komponente ein und setzte den Scrollbar auf Maximum. Aber dieses Maximum ist leider nur das Maximum was er vor dem hinzufügen hatte. Erstelle ich einen zweiten knopf der ihn unabhängig vom ersten auf Maximum setzt klappt es.
Also fehlt ihm irgend etwas wenn ich direkt nach dem hinzufügen den Scrollbar auf Max setzen möchte.
Vieleicht kennt ja jemand die Antwort wie man das Problem lösen könnte.
Hier mal das ganze als kleiner Testcode:
Java:
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Start implements ActionListener{
JFrame frame= new JFrame("Test");
JButton button =new JButton("Neu");
JPanel textPanel=new JPanel();
JScrollPane scrollPane=new JScrollPane(textPanel);
public Start(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800,600);
frame.setLayout(new FlowLayout(FlowLayout.CENTER));
button.addActionListener(this);
textPanel.setLayout(new BoxLayout(textPanel, BoxLayout.PAGE_AXIS));
scrollPane.setPreferredSize(new Dimension(100,100));
frame.add(scrollPane);
frame.add(button);
frame.pack();
frame.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
JLabel tempLabel=new JLabel("Hallo Welt");
tempLabel.setBackground(Color.BLUE);
tempLabel.setForeground(Color.WHITE);
tempLabel.setOpaque(true);
textPanel.add(tempLabel);
textPanel.revalidate();
scrollPane.getVerticalScrollBar().setValue(scrollPane.getVerticalScrollBar().getMaximum());
}
public static void main(String[] args) {
new Start();
}
}
Zuletzt bearbeitet von einem Moderator: