Drei Scrollpanes gleichzeitig scrollen

Status
Nicht offen für weitere Antworten.

plavix

Neues Mitglied
Hallo erstmal,
ich hoffe sehr, einer von euch kann mir helfen.
Ich habe drei JLists auf drei JScrollPanes. Ich versuche momentan es so hin zu bekommen, dass wenn ich ein Element der JList anklicke, das automatisch die anderen beiden auf die gleiche Höhe herunter scrollen. Ich habe versucht, in dem SelectionListener der JLists folgendes zu machen:
Code:
secondScrollPane.getVerticalScrollBar().setValue(firstScrollPane.getVerticalScrollBar().getValue());
thirdScrollPane.getVerticalScrollBar().setValue(firstScrollPane.getVerticalScrollBar().getValue());
Das funktioniert auch, solange das nur in einem Listener passiert, wenn ich diesen Befehl dann in dem Listener der zweiten JList ebenfalls ausführen will, springt bei einem Klick die ScrollBar nach ganz oben. Gleiches Problem ensteht auch, wenn ich statt set/getValue(), set/getVisibleAmount() verwende.
Weiß jemand von euch wie dieses Problem entsteht bzw. ich es umgehen kann oder habt ihr vielleicht einen alternativen Lösungsansatz.

LG Alex
 

Ebenius

Top Contributor
Vorausgesetzt alle Listen haben die selbe Höhe, funktioniert das da:
Code:
/**
 * Test main method.
 * 
 * @param args ignored
 */
public static void main(String[] args) {
  final JPanel contentPane = new JPanel(new GridLayout(1, 3));

  /* build three lists with identical length */
  final JList list1 = createList();
  final JList list2 = createList();
  final JList list3 = createList();

  /* build the scroll panes to the lists */
  final JScrollPane scroll1 = new JScrollPane(list1);
  final JScrollPane scroll2 = new JScrollPane(list2);
  final JScrollPane scroll3 = new JScrollPane(list3);

  /* add the scroll panes to the content pane */
  contentPane.add(scroll1);
  contentPane.add(scroll2);
  contentPane.add(scroll3);

  /* apply the same model to all scroll panes */
  final BoundedRangeModel scrollModel =
        scroll1.getVerticalScrollBar().getModel();
  scroll2.getVerticalScrollBar().setModel(scrollModel);
  scroll3.getVerticalScrollBar().setModel(scrollModel);

  /* display the scrollable lists in a frame */
  final JFrame f = new JFrame("Synchronized scroll bars");
  f.setContentPane(contentPane);
  f.pack();
  f.setLocationRelativeTo(null);
  f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  f.setVisible(true);
}

private static JList createList() {
  final String[] content = new String[26];
  for (int i = 0; i < content.length; i++) {
    content[i] = Character.toString((char) ('A' + i));
  }
  return new JList(content);
}

Falls nicht, solltest Du am besten eine eigene Implementierung von BoundedRangeModel machen, drei miteinander verbundene Instanzen bilden und diese den ScrollBars zuweisen.

Grüße, Ebenius
 

plavix

Neues Mitglied
Danke, das funktioniert super, es hat sogar den Vorteil dass durch das gleiche Model auch das scrollen mit dem Mausrad gleichzeitig erfolgt.
Danke, Danke, Danke
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JScrollBar - Immer drei Zeilen weiter AWT, Swing, JavaFX & SWT 10
C drei JTables, nur eine soll selektiert sein AWT, Swing, JavaFX & SWT 2
I Drei Fragen/Probleme mit einer JTable AWT, Swing, JavaFX & SWT 9
B JOptionPane.showInputDialog mit drei ComboBoxen nebeneinande AWT, Swing, JavaFX & SWT 2
B Eine Spalte in drei verschiedenlange Spalten aufteilen AWT, Swing, JavaFX & SWT 2
M JavaFX Applikation lädt Scrollpanes nicht AWT, Swing, JavaFX & SWT 19
S Swing Scrollpanes: wie kann ich durch Java-Code an den "Anfang" scrollen AWT, Swing, JavaFX & SWT 8
B Overlapping von 2 ScrollPanes AWT, Swing, JavaFX & SWT 8
G Wurde ausserhalb eines Scrollpanes geklickt? AWT, Swing, JavaFX & SWT 2
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
A 2 Stages gleichzeitig öffnen AWT, Swing, JavaFX & SWT 2
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
J Swing JDialog gleichzeitig mit JFrame anzeigen AWT, Swing, JavaFX & SWT 8
F getrennte formulare schliessen gleichzeitig AWT, Swing, JavaFX & SWT 7
S SWT Zwei Tabellen gleichzeitig Scrollen AWT, Swing, JavaFX & SWT 3
N zwei JComponente gleichzeitig auf JPanel hinzufügen AWT, Swing, JavaFX & SWT 22
L 2 Fenster gleichzeitig bewegen AWT, Swing, JavaFX & SWT 2
D JCheckBoxItem in Untermenüs alle gleichzeitig an- bzw. aus AWT, Swing, JavaFX & SWT 3
H Mehrere JDialogs gleichzeitig offen AWT, Swing, JavaFX & SWT 12
I JTable: "GLEICHZEITIG" zwei verschiedene TableMode AWT, Swing, JavaFX & SWT 2
G 3 oder mehr JTable nebeneinander gleichzeitig vert. scrollen AWT, Swing, JavaFX & SWT 4
J Einmal gleichzeitig auf zwei Graphics malen? AWT, Swing, JavaFX & SWT 5
B Resizable & setAlwaysOnTop gleichzeitig setzen AWT, Swing, JavaFX & SWT 10
K Spaltenbreite von mehreren Tabellen gleichzeitig verändern AWT, Swing, JavaFX & SWT 3
T Labels gleichzeitig bewegen und anklicken AWT, Swing, JavaFX & SWT 3
sliwalker 2 JComboBox ändern sich ungewollt gleichzeitig AWT, Swing, JavaFX & SWT 2
D Arbeiten mit 2 TextFeldern gleichzeitig AWT, Swing, JavaFX & SWT 6
U Mehrere Tasten gleichzeitig AWT, Swing, JavaFX & SWT 4
L Komponente und Grafik gleichzeitig auf JPanel zeichnen AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen


Oben