il metodo funziona, solo che se non hai fissato le dimensioni dello splitpane (ad esempio aggiungendolo ad un panel o un frame di cui hai dichiarato le dimensioni), setDividerLocation 0...1 darà 0.
Prova questo ad esempio:
codice:
import javax.swing.*;
import java.awt.*;
public class jSplitPaneDemos extends JFrame {
public jSplitPaneDemos() {
super("JSplitPane Demos");
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JTextArea lta = new JTextArea("Questo testo va a sinistra\nQuesto testo va a sinistra\n");
JTextArea rta = new JTextArea("Questo testo va a destra\nQuesto testo va a destra");
JScrollPane left = new JScrollPane(lta);
JScrollPane right = new JScrollPane(rta);
split.add(left, split.LEFT);
split.add(right, split.RIGHT);
this.setSize(400, 300);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(split, BorderLayout.CENTER);
this.setVisible(true);
split.setDividerLocation(0.5);
}
public static void main (String[] args) {
jSplitPaneDemos jspd = new jSplitPaneDemos();
}
}
la divisione sarà correttamente impostata al centro.
Quest'altro invece impostera la divisione subito alla fine della prima text area:
codice:
import javax.swing.*;
import java.awt.*;
public class jSplitPaneDemos extends JFrame {
public jSplitPaneDemos() {
super("JSplitPane Demos");
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JTextArea lta = new JTextArea("Questo testo va a sinistra\nQuesto testo va a sinistra\n");
JTextArea rta = new JTextArea("Questo testo va a destra\nQuesto testo va a destra");
JScrollPane left = new JScrollPane(lta);
JScrollPane right = new JScrollPane(rta);
split.add(left, split.LEFT);
split.add(right, split.RIGHT);
split.setDividerLocation(0.5);
this.setSize(400, 300);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(split, BorderLayout.CENTER);
this.setVisible(true);
}
public static void main (String[] args) {
jSplitPaneDemos jspd = new jSplitPaneDemos();
}
}