PDA

Visualizza la versione completa : [Java] Divisorio nei JSplitPane


isis
13-07-2005, 14:08
Ciao a tutti!
Ho un problemino di visualizzazione nei JSplitPane: ho usato l'istruzione setDividerLocation(...numero compreso tra 0 e 1 ...) per fissare la posizione iniziale del divisorio, ma apparentemente non ha effetto; esiste un modo per posizionarlo circa a metÓ del pannello che non usi questa istruzione?
(Temo sia un problema della versione di java che ho usato, ma non la posso cambiare perchŔ devo fare una presentazione che coinvolge delle applet, non scritte da me, che controllano il numero di versione e si limitano a mostrare un avviso di errore se la versione Ŕ troppo recente... :dh˛: )

Andrea1979
13-07-2005, 15:13
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:



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:



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();
}
}

Loading