2 jTables mit nur 1 identischen Scrollpane

Alles was mit Swing und AWT zu tun hat

Moderatoren: wegus, Olek77

Antworten
GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 19.01.2012, 14:01

Hallo Zusammen,

ich habe 2 jTables parallelzueinander. Ich möchte, dass der linke Table keine Scrollbar-Vertikal besitzt sondern die selbe vom rechten jTable.
Wie kann ich 1. über Netbeans die Scrollbar links deaktivieren
und 2. den Scrollpane von dem rechten auch für den linken jTable benutzen ?
Würde mich über eine Antwort freuen.
Lg,
Giana

Benutzeravatar
nigjo
Beiträge: 632
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von nigjo » 19.01.2012, 14:57

Hast du die "gleiche" Frage nicht hier: http://netbeans-forum.de/viewtopic.php?p=22545#p22545 schon mal gestellt und dir selbst beantwortet?

Oder was meinst du mit
GianaSisters hat geschrieben: über Netbeans die Scrollbar links deaktivieren
?

Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 19.01.2012, 15:07

Es geht im Prinzip um das selbe, allerdings denke ich, dass es doch eigentlich relativ simpel sein könnte, wenn man über Netbeans beim linken die scrollpane deaktiviert und die scrollpane vom rechten dann auch mit einem verweis gleichzeitig auf den linken setzt. Wie man das genau macht weiß ich nicht.
Hat jemand einen kleinen Codeschnipsel dafür ?

Benutzeravatar
nigjo
Beiträge: 632
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von nigjo » 19.01.2012, 15:14

GianaSisters hat geschrieben:Wie man das genau macht weiß ich nicht.
Hat jemand einen kleinen Codeschnipsel dafür ?
So weit ich weiß ist das unter Swing nicht möglich zwei Scrollpanes zu synchonisieren. Zumindest nicht mit den Standardmitteln. Das Beispiel aus dem anderen Thread sieht nach einem brauchbaren Ansatz aus.

Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 20.01.2012, 14:31

Mir wäre es wirklich sehr wichtig zu wissen wie man die vertikale jScrollpane eines jTables unter Netbeans deaktivieren kann...

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von Olek77 » 20.01.2012, 17:33

Hi,

Das deaktivieren ist leicht. Das Synchronisieren ist schwerer aber möglich. Ich hatte dazu vor Jahren mal ein Source-Code-Fragment gefunden.
Habe dieses hier http://forums.netbeans.org/post-75640.html eben gegoogled.

Die vertikale Scrollbar deaktivierst du in dem du schreibst :

Code: Alles auswählen

JScrollPane.setVerticalScrollBarPolicy( ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER );
Mehr dazu findest du in der Java-Doc unter JScrollPane.

Eine Frage. Wieso willst du überhaupt 2 Tabellen? Geht das nicht auch einfach in eine?

Viele Grüße,

Olek
- Netbeans Certified Associate -

GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 23.01.2012, 11:08

Hallo Olek,

danke für Deine Antwort. Endlich hab ich die blöde Scrollpane abstellen können.
Ich benötige 2 Tabellen, da die ersten 2 Spalten (die dann ein eigenständiger jTable sind) fixiert sein sollen, so dass der horizontale Scrollpane sich nur auf die weiteren Spalten bezieht. Leider geht das nur durch diese blöde Fummelei. Ich schaue mir den Code mal genau an, vielen Dank für den Link - vielleicht bekomme ich es ja hin ! Sollten weitere Fragen sein hoffe ich sie hier stellen zu dürfen :)
Viele Grüße,
Giana

GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 23.01.2012, 14:09

Hi Olek,

perfekt !!! Danke für die Hilfe, ich habs hinbekommen.

Aber ein Problem habe ich noch:
Das "public void adjustmentValueChanged(AdjustmentEvent evt) " scheint nur auf den Mausklick und das ziehen des Scrollpanels zu wirken.
An meiner Maus habe ich ein Scrollrad - leider wirkt sich das nicht auf genanntes Event aus. Gibt es dafür ein spezielles Event?
Gruß,
Giana

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von Olek77 » 23.01.2012, 20:17

Hi Giana,

Es gibt einen speziellen Mausrad-Listener.

Am besten erstellst du gleich eine innere Klasse die von MouseInputAdapter erbt.
Damit kannst du alle möglichen MouseEvent-Klassen abfangen.

Die MouseWheelEvents werden ansonsten mit dem MouseWheelListener abgefangen

Code: Alles auswählen

mouseWheelMoved( MouseWheelEvent mwe ) { };
wie gesagt kannst du diese Methode überschreiben wenn du eine innere Klasse hast wie oben angegeben.
Ansonsten kannst du natürlich auch einfach das Interface zu der Klasse die dieses Event abfangen möchte
hinzufügen.

Ein weiterer eleganter Ansatz für dein Problem wäre es die statische/erste Tabelle im RowHeader deiner
zweiten Tabelle zu platzieren( falls das besser von der Optik passt ).

Infos dazu findest du auch in der Javadoc zu JScrollPane bzw. den dort verwiesenen tutorials.
( Generell lohnt sich das "stöbern" in der Javadoc des JDK )

Viel Erfolg,

Olek
- Netbeans Certified Associate -

GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 24.01.2012, 12:41

Danke nochmal. Damit hat es funktionier !

Code: Alles auswählen

MouseWheelListener mwl = new MyMouseWheelListener();
jScrollPane1.addMouseWheelListener(mwl);

Code: Alles auswählen

class MyMouseWheelListener implements MouseWheelListener{

        public void mouseWheelMoved(MouseWheelEvent mwe) {
             jScrollPane2.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getValue()); 
  
            //throw new UnsupportedOperationException("Not supported yet.");
        }
    
}

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von Olek77 » 25.01.2012, 16:27

Hallo,

Fein, dass es geklappt hat. Kannst du mir bitte den Quellcode mal schicken?
Das würde mich interessieren.

Viele Grüße,

Olek
- Netbeans Certified Associate -

GianaSisters
Beiträge: 14
Registriert: 11.01.2012, 17:05

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von GianaSisters » 31.01.2012, 13:46

Sorry, habe mich jetzt erst wieder eingeloggt, die wichtigsten Quellcodeangaben habe ich ja oben geschrieben oder willst du noch "mehr" ? Kann ich gern machen

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von Olek77 » 02.02.2012, 12:45

Re,

Ich wollte vor allem mal sehen wozu du diese Tabellenstruktur verwendet hast.

Viele Grüße,

Olek
- Netbeans Certified Associate -

Mario78
Beiträge: 1
Registriert: 22.04.2012, 23:34
Kontaktdaten:

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von Mario78 » 22.04.2012, 23:42

@Olek77
In der neusten Version von NetBeans ist das glaube ich gar nicht mehr nötig.

@GianaSisters
Bei mir funktioniert der Quellcode nicht. Versionsprobleme?

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: 2 jTables mit nur 1 identischen Scrollpane

Beitrag von Olek77 » 24.04.2012, 11:21

Re,

Was meinst du mit "ist nicht mehr nötig" ?

Olek
- Netbeans Certified Associate -

Antworten