Synchrone Scrollpanes wieder trennen

Hallo zusammen ,

ich habe fogendes Problem ich habe 2 Textareas mit jeweils zwei Scrollpanes die ich wenn beide mit text gefüllt sind wie folgt Synchronisiere

Manager.jScrollPane2.getVerticalScrollBar().setModel(Manager.jScrollPane1.getVerticalScrollBar().getModel());

aber wie bekomme ich es hin wenn eine TextArea wieder geleert wird das sie nicht mehr Synchron laufen

vielen dank für eure hilfe

vielleicht hat jemand ein idee

ein neues Dummy-Model setzen? sieht nach DefaultBoundedRangeModel in diesem Fall aus,
wenn das häufig passiert oder schlicht um diese Frage zu umgehen kann es sich lohnen, vom Anfang das verdrängte Model zu merken und zurückzusetzen,
(unter der Annahme dass das alles geht, nix selber ausprobiert)

falls vor dem Setzen des neuen Inhalts entschieden und durchgeführt,
dann vielleicht nicht manuell Maximum und ähnliches richtig einzustellen

Model von jScrollPane2 merken und dann wieder einsetzen?

bye
TT

oh danke ging ja schnell die Antwort . ich weiß nur nicht wie ich das umsetzen muss könntest du mir da etwas weiter helfen .
mein Ansatz war bis her der hier:

if(Manager.jTextArea1.getText().length() == 0){
System.out.println(„kein text“);
}else{
System.out.println(„hat text“);
Manager.jScrollPane2.getVerticalScrollBar().setModel(Manager.jScrollPane1.getVerticalScrollBar().getModel());
}

*** Edit ***

Ja wo finde ich das denn :slight_smile:

*** Edit ***

ich meine wo finde ich das model

wo ist da die Frage?
du kannst doch nicht gut schon eine so komplizierte Zeile haben und dann nicht wissen wie du ein anderes Model setzen kannst?

zunächst ist der gepostete Code mit einem if auf Manager, einem Holen von Manager und einem Setzen in Manager schlecht,
warum keine Methode in Manager organisiereDeineAreas(); und darin der Code auf all die Manager-Dinge?

am Anfang des Programms das alte Model in einem Attribut ablegen/ merken,
wie man ein Model herausholst kannst du kaum fragen, das hast du ja schon,
ein Objekt in einem Attribut ablegen ist auch nicht so schwer

später im if dieses alte Model setzen?
usw.

Programmieren besteht aus Ideen wie man sie hier im Forum besprechen kann und im Code dann aus vielen kleinen Schritten,
Details des eigenen Programms zu bedenken, da muss dann etwas Eigenständigkeit dazukommen :wink:

Schauder … :eek:

Das kannst du dir ganz einfach in einer Variablen merken:

if(Manager.jTextArea1.getText().length() == 0){
  System.out.println("kein text");
}else{
  System.out.println("hat text");
  oldModel = Manager.jScrollPane2.getVerticalScrollBar().getModel();
  Manager.jScrollPane2.getVerticalScrollBar().setModel(Manager.jScrollPane1.getVerticalScrollBar().getModel());
}

Später kannst du das dann wieder zurücksetzen:

Manager.jScrollPane2.getVerticalScrollBar().setModel(oldModel);