Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    11

    [Java] Divisorio nei JSplitPane

    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... )

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    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();
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.