Hallo Zusammen,
der Hintergrund: Ich soll eine sehr, sehr große Datei in meinem Programm anzeigen. Da
diese zu groß für den Speicher ist, will ich immer nur Stück für Stück in den Speicher laden und anzeigen.
Ich benutze dazu ein JTextPane in einem JScrollPane um es anzuzeigen.
Das Problem: Wenn ich nunr GANZ nach unten Scrolle möchte ich verständlicherweise die nächsten Zeilen nachladen. Da allerdings der Maximum Wert der JScrolBar nicht mit dem Wert von getValue() übereinstimmt funktioniert das ganze nicht !
.
Das ist der Code:
Nochmal der Wert wenn ich ganz ganz unten bin ist nicht gleich max.
Wieso bitte helft mir.
Gruß Punkratz
der Hintergrund: Ich soll eine sehr, sehr große Datei in meinem Programm anzeigen. Da
diese zu groß für den Speicher ist, will ich immer nur Stück für Stück in den Speicher laden und anzeigen.
Ich benutze dazu ein JTextPane in einem JScrollPane um es anzuzeigen.
Das Problem: Wenn ich nunr GANZ nach unten Scrolle möchte ich verständlicherweise die nächsten Zeilen nachladen. Da allerdings der Maximum Wert der JScrolBar nicht mit dem Wert von getValue() übereinstimmt funktioniert das ganze nicht !
Das ist der Code:
Java:
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import javax.swing.JFrame;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
public class Main
{
JTextPane textPane = new JTextPane();
public Main() throws Exception
{
JFrame frame = new JFrame();
textPane.setEditable(false);
final JScrollPane scrollPane = new JScrollPane(textPane);
frame.getContentPane().add(scrollPane);
frame.setSize(450, 300);
frame.setLocationRelativeTo(null);
String text = "";
for (int i = 0; i < 1000; i++)
{
text += "" + i + i + i + i + i + i;
}
textPane.setText(text);
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener()
{
@Override
public void adjustmentValueChanged(AdjustmentEvent e)
{
System.out.println(e.getValue());
System.out.println(((JScrollBar) e.getSource()).getMaximum());
}
});
frame.setVisible(true);
}
public static void main(String args[])
{
try
{
new Main();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Wieso bitte helft mir.
Gruß Punkratz
Zuletzt bearbeitet: