Hi zusammen, ich sitze gerade an dem folgendem Problem:
Über ein Panel indem sich eine Scala befindet möchte ich mit der Maus den sichtbaren Bereich in der ScrollPane (in der sich eine JLayeredPane befindet) auswählen. Dieser sichtbare Bereich geht von:
vis_Low_lp_x bis vis_High_lp_x
Durch das Auswählen des darzustellenden Bereichs können 4 Fälle eintreten:
LEFT_FIXED_RIGHT_BIGGER
LEFT_FIXED_RIGHT_SMALLER
RIGHT_FIXED_LEFT_BIGGER
RIGHT_FIXED_LEFT_SMALLER
Also entweder bleibt der linke oder rechte sichtabre Bereich fix, wobei sich die andere Seite vergrößert/verkleinert
Um jetzt meine JScrollPane auf diesen Bereich zu verschieben bestimme ich das Rectangle:
Nun habe ich das Problem, wenn sich das Rectangle schon im sichtbaren Bereich befindet. Dann springt meine JScrollPane entweder garnicht, oder sie springt an eine komische Position.
Kann ich irgendwie festlegen daß das visibleRect entweder links oder rechts die von mir gewünschte Position anzeigt?
Über ein Panel indem sich eine Scala befindet möchte ich mit der Maus den sichtbaren Bereich in der ScrollPane (in der sich eine JLayeredPane befindet) auswählen. Dieser sichtbare Bereich geht von:
vis_Low_lp_x bis vis_High_lp_x
Durch das Auswählen des darzustellenden Bereichs können 4 Fälle eintreten:
LEFT_FIXED_RIGHT_BIGGER
LEFT_FIXED_RIGHT_SMALLER
RIGHT_FIXED_LEFT_BIGGER
RIGHT_FIXED_LEFT_SMALLER
Also entweder bleibt der linke oder rechte sichtabre Bereich fix, wobei sich die andere Seite vergrößert/verkleinert
Um jetzt meine JScrollPane auf diesen Bereich zu verschieben bestimme ich das Rectangle:
Java:
Rectangle rect = null;
if(fixed.equals(Fixed.LEFT_FIXED_RIGHT_BIGGER)){
System.out.println("left fix right bigger");
rect = new Rectangle((int) visRect_Low_x, 0, 0, 0);
} else if(fixed.equals(Fixed.LEFT_FIXED_RIGHT_SMALLER)){
System.out.println("left fix right smaller");
rect = new Rectangle((int)(vis_High_lp_x+1),0,0,0);
} else if(fixed.equals(Fixed.RIGHT_FIXED_LEFT_BIGGER)){
System.out.println("right fix left bigger");
rect = new Rectangle((int)vis_Low_lp_x,0,0,0);
} else if(fixed.equals(Fixed.RIGHT_FIXED_LEFT_SMALLER)){
System.out.println("right fix left smaller");
rect = new Rectangle((int)(vis_High_lp_x+1),0,0,0);
}
Nun habe ich das Problem, wenn sich das Rectangle schon im sichtbaren Bereich befindet. Dann springt meine JScrollPane entweder garnicht, oder sie springt an eine komische Position.
Kann ich irgendwie festlegen daß das visibleRect entweder links oder rechts die von mir gewünschte Position anzeigt?