JSplitPane

Status
Nicht offen für weitere Antworten.

Dit

Bekanntes Mitglied
Hallo Zusammen,

habe folgende Frage:

habe mit: content.setOneTouchExpandable(true); mein JSplitPane so eingestellt das ich über 2 kleine Buttons die rechte fläche minimieren / maximieren kann.

nun möchte ich daher Deaktivieren das ich die "Border" nicht mehr per Maus verschoben werde kann. Finde aber nicht das Kommando.
:?

Danke euch..
 

Dit

Bekanntes Mitglied
Danke sehr, :applaus:

habe eher gedacht ich setze damit alles auf Disabled (Componenten und alles was dazu gehört) ???:L
ich muss sagen man lernt nie aus.

dann habe ich nur noch eine frage:

Code:
content.setOneTouchExpandable(true);

macht ja automatisch 2 Buttons (um die linke voll dazustellen und um die recht voll dazustellen)
ist es auch möglich nur einen dieser Button dazustellen (da wir nun die linke pane von halb auf voll darstellen wollen)

egal wo ich bisher bei google geschaut habe wird darüber nichts gesagt (ist auch ein wenig speziell) :cool:
 

André Uhres

Top Contributor
Wie kommst du mit nur einem Button wieder zurück von voll auf halb?
Oder soll diese Möglichkeit auch nicht mehr angeboten werden?
 

Dit

Bekanntes Mitglied
da habe ich mich dann wohl ein bisschen "falsch" ausgedrückt.

Also die funktionion die jetzt in den beiden Buttons ist, soll auf ein Button übergehen, der auschließlich zwischen

vollBild / halb Bild wechseln soll. -> immer nur von rechts - Mitte / sodass das linke Bild immer stehen bleibt.

habe möglichkeiten gefunden es in einem externen Button zu machen, da ich der SplitPane dann werte geben kann und die SplitPane somit dann quasi "Toggeln" kann.

es soll irgendwann auch so funktionieren, das ich nur nen doppelklick auf den Rand machen und die oben genannten Funktionen dann reagieren.

Aber da ich nicht möchte das einer meiner Hausaufgaben macht, werde ich diesen Thread zu gg. Zeitpunkt wieder erleben lassen ;) (habe leider noch wichtigeres am Client zu tun, daher ist das nur ein feature was am Ende angehangen wird)

Aber du hast mir schon mit der ersten Antwort geholfen -> danke :toll:
 

André Uhres

Top Contributor
Mach einen MouseListener auf den Divider:
((BasicSplitPaneUI)sp.getUI()).getDivider().addMouseListener
Code:
package split;
/*
* FixDividerDemo.java
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;
public class FixDividerDemo extends JFrame {
    private JSplitPane sp;
    public FixDividerDemo() {
        super("Fix Divider Demo: Doubleclick divider");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setResizable(false);
        setLocationRelativeTo(null);
        sp = new JSplitPane();
        sp.setDividerLocation(getWidth()/3*2);
        sp.setEnabled(false);//fix divider
        sp.setLeftComponent(new JScrollPane(new JTextArea(5,30)));
        JPanel right = new JPanel();
        for (int i = 0; i < 4; i++) right.add(new JButton("Test_"+i));
        sp.setRightComponent(right);
        getContentPane().add(sp, BorderLayout.CENTER);
        ((BasicSplitPaneUI)sp.getUI()).getDivider().addMouseListener(new MouseAdapter() {
            public void mousePressed(final MouseEvent e) {
                if(e.getClickCount()==2)
                    sp.setDividerLocation(sp.getRightComponent().getWidth()==0?getWidth()/3*2:getWidth());
            }
        });
    }
    public static void main(final String args[]) {new FixDividerDemo().setVisible(true);}
}
 

Dit

Bekanntes Mitglied
Aber da ich nicht möchte das einer meiner Hausaufgaben macht,
werde ich diesen Thread zu gg. Zeitpunkt wieder erleben lassen
(habe leider noch wichtigeres am Client zu tun,
daher ist das nur ein feature was am Ende angehangen wird)

du hast dagegen verstoßen :D

Ich muss zugeben, besser hätt ich es nicht machen können.
Hast mir also meine Arbeit abgenommen.. :toll:
noch mals vielen dank!

PS: da ich von Beruf Programmierer bin, bekomm ich auch die Zeit bezahlt,
wenn ich nach einer Lösung suche. Daher bin ich eigentlich nie dran interessiert
fertige sachen zu übernehmen!
Da ich gerne wissen möchte was ich da mache.
(das wissen viele nicht wenn sie Klassen einfach Kopieren)

Aber bei dir mach ich mal ne ausnahme!
1. Da ich den Quellcode verstehe -> leicht und kurz gemacht :toll:
2. ich es nicht viel anders gemacht hätte nachdem ich mich zwar lang hätte :### müssen..

dann noch mal herzlichen Dank für die Kompetente und schnelle Lösung. :applaus: :applaus: :toll:

Gruß
Torsten
 

Dit

Bekanntes Mitglied
das stimmt natürlich auch wiederrum.
naja dann hoffen wir mal das sich auch User an dieser Lösung bereichern..

mfg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben