JSplittPane mauszeiger ändern

Kassel

Aktives Mitglied
Wie kann ich realisieren, wenn ich mit meiner Maus über die Abgrenzung zweier SplittPanes gehe, dass sich der Cursor ( Mauszeiger ) ändert ... halt wie in Excel !

Ich möchte dass der Benutzer sofort sieht ... aha hier kann ich die grösse der splittpanes ändern.

Danke im voraus
 

danoman

Mitglied
Meinst du, dass sich der Cursor ändern soll, sobald man über den Divider fährt? Habs mal unter Win7 und Ubuntu getestet mit JDK1.5 und 1.6 ohne irgendwas zu customizen. Hab da schon standardmäßig nen "verschiebe"-pfeil. was meinstn genau?
 

Kassel

Aktives Mitglied
ich habe in meinem programm mehrere SplittPanes ... ich möchte jetzt wenn man mit der Maus drüber fährt das sich so ein RESIZE cursor angezeigt wird jedoch will das nicht so klappen , ich schreib mal hin was ich versucht habe :

Java:
 BasicSplitPaneDivider dividerA = ((BasicSplitPaneUI) jSplitPaneA.getUI()).getDivider();
        dividerA.addMouseListener(new MouseAdapter()
        {
            public void mouseMoved(MouseEvent e)
            {
                setCursor(Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR));
                System.out.println("mouseClicked");
            }

            public void mouseExited(MouseEvent e){
                setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
            }
        });

der Cursor bleibt jedoch immer der selbe ( standard ) ... habe es ähnlich bei einer Tabelle gemacht und dort hat es geklappt ... wo ist mein Fehler

jSplitPaneA ist mein SplittPane


EDIT: Es klappt wenn ich statt addMouseListener , addMouseMotionListener benutze ... nur eine Info jedoch wenn ich drüber gehe ( dann ist alles in Ordnung ) wenn ich ziehe auch ( doch wenn ich loslasse ) bleibt er immer noch gleich auch wenn ich weg vom divider gehe ... hmm anscheinen kommt er in mouseExited nicht rein
 
Zuletzt bearbeitet:

danoman

Mitglied
hm bei mir klappts. würd mouseexited aber leer lassen, da der cursor sonst wiede rzurück gesetzt wird sobald du den divider bereich verlässt beim verschieben. Denn so wies aussieht, wird das eigentliche divider-component nicht wirklich verschoben. ausserdem würd ich "mouseEntered" statt "mouseMoved" nehmen. Und solltest überprüfen ob es sich um eine horizontale oder vertikale aufteilung handelt. siehs dir an:

Gruß daniel

Java:
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.WindowConstants;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;

public class Main {

    public static void main(String[] args) {
        new Main().run();
    }

    public void run() {
        JFrame f = new JFrame();
        Dimension dim = new Dimension(500, 500);
        f.setPreferredSize(dim);
        f.setSize(dim);
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel a = new JPanel();
        a.setBackground(Color.red);

        JPanel b = new JPanel();
        b.setBackground(Color.blue);

        final JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, a, b);
        sp.setDividerLocation(f.getHeight() / 2);
        final BasicSplitPaneDivider div = ((BasicSplitPaneUI) sp.getUI()).getDivider();

        div.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseEntered(MouseEvent e) {
                if (sp.getOrientation() == JSplitPane.VERTICAL_SPLIT) {
                    div.setCursor(new Cursor(Cursor.S_RESIZE_CURSOR));
                } else {
                    div.setCursor(new Cursor(Cursor.E_RESIZE_CURSOR));
                }
            }
        });

        f.add(sp);
        f.setVisible(true);
    }
}
 

Kassel

Aktives Mitglied
Hi Daniel ... also dass sieht schon nicht schlecht aus , habe auch dass selbe wie du gemacht - jetzt wollte ich nochmal kurz sehen ob es bei funktioniert ( bei meinem Beispiel ) leider funktioniert es nicht ... muss mal schauen wo der fehler liegt - oder er zeigt es nur kurzzeitig an oder gar nicht ... hmm???:L
 

danoman

Mitglied
wichtig ist, dass du im listener, in der methode "mouseExited" den cursor NICHT zurücksetzt. sollte es immer noch nicht gehen, tausche mal diesen code-block:
Java:
div.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseEntered(MouseEvent e) {
                if (sp.getOrientation() == JSplitPane.VERTICAL_SPLIT) {
                    div.setCursor(new Cursor(Cursor.S_RESIZE_CURSOR));
                } else {
                    div.setCursor(new Cursor(Cursor.E_RESIZE_CURSOR));
                }
            }
        });

durch diesen aus:
Java:
if (sp.getOrientation() == JSplitPane.VERTICAL_SPLIT) {
                    div.setCursor(new Cursor(Cursor.S_RESIZE_CURSOR));
        } else {
            div.setCursor(new Cursor(Cursor.E_RESIZE_CURSOR));
        }
 

Michael...

Top Contributor
Nur so als Hinweis:
Mit setCursor() kann man generell festlegen, welcher Cursor über welcher Komponente angezeigt wird. D.h. zum einen, dass man aufpassen muss auf welcher Komponente die Methode aufgerufen wird und zum anderen sollte das Konstrukt mittels MouseListener nicht notwendig sein

Siehe dazu API Doku:Component.setCursor(java.awt.Cursor)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JSplittPane - unsichtbarer Rahmen? hilfe ;) AWT, Swing, JavaFX & SWT 2
S Bild in Richtung Mauszeiger drehen AWT, Swing, JavaFX & SWT 2
frankred Swing Eigener ListCellRenderer D'n'D "MOVE" - Mauszeiger flackert AWT, Swing, JavaFX & SWT 14
E Spinne die aufm desktop dem mauszeiger folgt! AWT, Swing, JavaFX & SWT 11
B Swing Drag&Drop mit Feedback (Image am Mauszeiger) AWT, Swing, JavaFX & SWT 7
C Mauszeiger ändern AWT, Swing, JavaFX & SWT 1
K Wenn Mauszeiger in der Nähe vom Kreis, soll Kreis an eine andere Stelle springen AWT, Swing, JavaFX & SWT 8
G Mauszeiger verändern AWT, Swing, JavaFX & SWT 10
I Mauszeiger "verwandeln" AWT, Swing, JavaFX & SWT 5
G Drag and drop - Bild ohne ziehen am Mauszeiger anhängen? AWT, Swing, JavaFX & SWT 8
H Bild mit Mauszeiger bewegen AWT, Swing, JavaFX & SWT 2
A Komponente überdecken Mauszeiger AWT, Swing, JavaFX & SWT 8
G Mauszeiger über Button AWT, Swing, JavaFX & SWT 13
J Mauszeiger ändern AWT, Swing, JavaFX & SWT 3
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
_user_q ChoiceBox Elemente: Sprache ändern AWT, Swing, JavaFX & SWT 7
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
B Deckraft ändern AWT, Swing, JavaFX & SWT 1
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
missy72 JavaFX RowFactory Schriftfarbe ändern AWT, Swing, JavaFX & SWT 6
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
W JavaFX CSS ändern wirft NPE AWT, Swing, JavaFX & SWT 8
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
S JavaFX ListView Inhalte während Laufzeit ändern AWT, Swing, JavaFX & SWT 23
Shallty JavaFX MenuItem (Info) Icon ändern AWT, Swing, JavaFX & SWT 7
J Schriftart über einen Button ändern AWT, Swing, JavaFX & SWT 1
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
S JavaFX Boolean ändern Table View AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
cool_brivk24 Swing Button Farbe ändern AWT, Swing, JavaFX & SWT 2
B Observer Pattern JLabel ändern AWT, Swing, JavaFX & SWT 7
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
das_leon AWT Button Design ändern AWT, Swing, JavaFX & SWT 5
S JavaFX GridPane Zellen Seitenverhätnis passend ändern mit der Stage AWT, Swing, JavaFX & SWT 0
S Parameter ändern in try/catch AWT, Swing, JavaFX & SWT 5
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
L JavaFX button über andere Klasse ändern AWT, Swing, JavaFX & SWT 7
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
T JavaFx Examples ändern liefert unerwartetes Ergebnis AWT, Swing, JavaFX & SWT 5
Z Swing JTree DefaultMultipleTreeNode Repräsentation ändern AWT, Swing, JavaFX & SWT 1
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
K Liniendicke für Line Chart dynamisch ändern AWT, Swing, JavaFX & SWT 0
K Sprache ändern AWT, Swing, JavaFX & SWT 11
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
S JavaFX fxml datein mit menübar ändern AWT, Swing, JavaFX & SWT 20
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
T AWT Farben in einem Bild ändern AWT, Swing, JavaFX & SWT 8
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
Sugan Inhalte mit Threads ändern -> java.lang.IllegalStateException AWT, Swing, JavaFX & SWT 6
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
R LookAndFeel Wie kann man die Textfarbe der Nimbus ProgressBar nach Füllstand ändern? AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
E JLabel aus Runnable ändern AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX TreeView Expanded-Icon ändern AWT, Swing, JavaFX & SWT 0
M JavaFX Progressbar bar und track Komponente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
B 3D-Grafik Java 3D Licht während Laufzeit ändern AWT, Swing, JavaFX & SWT 0
T JavaFX "DefaultButton"-Design ändern AWT, Swing, JavaFX & SWT 8
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
E JTable Hintergrund von geklickter Zelle ändern AWT, Swing, JavaFX & SWT 2
T JFileChooser Rahmenfarbe ändern AWT, Swing, JavaFX & SWT 1
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
Joew0815 Dropdown meue während der Laufzeit ändern. AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Titelfarbe ändern AWT, Swing, JavaFX & SWT 7
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben