2 JScrollPanes auf den selben Status setzten

Status
Nicht offen für weitere Antworten.

The_S

Top Contributor
Hi, ich habe zwei JScrollPanes. Das eine JScrollPane soll immer genauso weit sein, wie das andere. Praktisch mitscrollen. Hab schon ein bisschen herumexperimentiert, aber leider erfolglos. Hat da jemand eine Idee?
 

semi

Top Contributor
Meinst Du sowas? ???:L
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ScrollDemo extends JPanel
{ 
  public ScrollDemo()
  { 
    initUI();
  } 
  
  private void initUI()
  {
    String []tmp = new String[] {"one", "two", "three", "four", "five"};
    
    String data[] = new String[50];
    for(int i=0; i<data.length; i++)
    {
      data[i] = tmp[i%5];
    }
    
    JList list1 = new JList(data);
    JList list2  = new JList(data);
    final JScrollPane scroll1 = new JScrollPane(list1, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    final JScrollPane scroll2 = new JScrollPane(list2, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    
    class MyAdjustmentListener implements AdjustmentListener 
    {
      Adjustable b1;
      Adjustable b2;
      boolean adjusting=false;
      public MyAdjustmentListener(Adjustable b1, Adjustable b2)
      {
        this.b1 = b1;
        this.b2 = b2;
        b1.addAdjustmentListener(this);
        b2.addAdjustmentListener(this);
      }
        // either by the user or programmatically.
      public void adjustmentValueChanged(AdjustmentEvent e)
      {
        if(!adjusting)
        {
          adjusting = true;
          Adjustable target = (e.getAdjustable()==b1)?b2:b1;
          target.setValue(e.getAdjustable().getValue());
          adjusting = false;
        }
      }
    }
    
    new MyAdjustmentListener(scroll1.getVerticalScrollBar(), scroll2.getVerticalScrollBar());
    
    setLayout(new GridLayout(1,2));
    add(scroll1);
    add(scroll2);
  }
    
  public static void main(String[] args)
  { 
    try
    { 
      final JFrame f = new JFrame("ScrollBar Demo");
      f.addWindowListener(
        new WindowAdapter() 
        {
          public void windowClosing(WindowEvent e)
          {
            f.setVisible(false);
            System.exit(0);
          }
        }
      );
      f.setSize(800, 600);
      f.getContentPane().add(new ScrollDemo());
      f.setLocationRelativeTo(null);
      f.setVisible(true);
    }
    catch(Exception e)
    { 
      e.printStackTrace(); 
    } 
  } 
}
 

The_S

Top Contributor
Jo, genau sowas. Ich bin zwar ein bisschen überrascht gleich kompletten Code zu bekommen, aber mir solls recht sein :wink: . Hab jetzt leider keine Zeit mir den Code genau anzuschauen. Werd ich dann morgen oder übermorgen machen. Wenn du lust und Zeit hast kannst du ja noch ein paar Kommentare einfügen. Danke.
 

The_S

Top Contributor
Kannst du das mal erklären? Bzw. auf welche Zeilen kommt es an? Danke

[edit] oder weiß jemand anderes wie was warum?
 

Illuvatar

Top Contributor
Ähm... lies den Code??? So schwer is der net :!:

Panel + ScrollPanes + AdjustmentListener + Veränderung der anderen in Zeile 46
 

The_S

Top Contributor
Ich weiß net warum, aber ich steig da irgendwie überhaupt net durch! In keinster weiße :oops: . Schau mir das Ding jetzt scho fast ne Stunde an! :autsch: Das einzige was ich immer wieder erreiche ist, dass entweder die eine Scrollbar verschwindet und die andere mitscrollt oder, dass die zweit einfach sofort ans Ende gesetzt wird
 

abollm

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Ich weiß net warum, aber ich steig da irgendwie überhaupt net durch! In keinster weiße :oops: . Schau mir das Ding jetzt scho fast ne Stunde an! :autsch: Das einzige was ich immer wieder erreiche ist, dass entweder die eine Scrollbar verschwindet und die andere mitscrollt oder, dass die zweit einfach sofort ans Ende gesetzt wird

Was genau willst du denn mit den Scollbars machen, oder besser gesagt was soll in den zwei Scrollpanes enthalten sein (JTable, JList wie im obigen Beispiel ...)?

Soll zudem nur ein Scrollbar die beiden Scrollpanes steuern?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Developer_X Swing JScrollPanes-JTextarea funktioniert nicht AWT, Swing, JavaFX & SWT 7
I Fehler bei verschachtelten JScrollPanes AWT, Swing, JavaFX & SWT 2
GilbertGrape JTextAreas, JScrollPanes (?) AWT, Swing, JavaFX & SWT 4
G Mehrere JScrollPanes gekoppelt scrollen AWT, Swing, JavaFX & SWT 2
T JTextPane mit JScrollPanes AWT, Swing, JavaFX & SWT 2
D Probleme bei JSplitPane mit JScrollPanes und Panels. AWT, Swing, JavaFX & SWT 4
W 2D-Grafik Koordinaten nicht immer die selben AWT, Swing, JavaFX & SWT 9
S Tabelle im selben Formular anzeigen AWT, Swing, JavaFX & SWT 6
J Drag'n Drop imm selben Frame unterbinden AWT, Swing, JavaFX & SWT 3
4 Neue Fensterinhalte kommen nicht im selben Fenster AWT, Swing, JavaFX & SWT 5
S [JTree] mehrmals auf den selben Node klicken AWT, Swing, JavaFX & SWT 11
beatles Swing JTextField - Game Status aus Array anzeigen AWT, Swing, JavaFX & SWT 3
F Java FX AudioPlayer: wie reagiert man auf den Status "Musik abgespielt" AWT, Swing, JavaFX & SWT 2
O Jcheckbox Status nachträglich abfragen AWT, Swing, JavaFX & SWT 2
F Status von RadioButtons abfragen AWT, Swing, JavaFX & SWT 5
D Fibonacci-Folge status Leiste. AWT, Swing, JavaFX & SWT 16
G Status(minimiert, maximi) eines JInternakframes herausfinden AWT, Swing, JavaFX & SWT 3
G JInternalFrame Fenster Status von Icon nach Normal? AWT, Swing, JavaFX & SWT 5
A JTree: Status des Baums speichern? AWT, Swing, JavaFX & SWT 15
D CheckBox ändert Status nur, wenn sie FocusOwner ist AWT, Swing, JavaFX & SWT 2
G Status der Berechnung per JProgress anzeigen lassen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben