Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [Java] Utilizzo jScrollPane

    Ciaoa tutti, scusate se ancora mostro tutta la mia inesperienza nell'utilizzo delle librerie grafiche swing.


    Allora, per la grafica della mia applicazione ho un jPanel in cui devo contenere un po' di cose.

    Allora al suo interno ho pensato bene di mettere un jScrollPane con all'interno un altro jPanel.

    Il mio problema è il seguente:
    come faccio una volta che uso i designers del jBuilder x a "scrollare" il jScrollPane per poter posizionare i vari elementi in modo corretto?


    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    prova a non utilizzare lo scroll pane, aggiungi gli elementi che vuoi, fatti generare il codice da JBuilder, e poi aggiungi tu lo scrollpane da codice.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    ho provato a fare come dici:

    ho costruito una classe che deriva da jPanel con tutto il contenuto che mi serve

    poi nell'applicazione ho inserito uno jScrollPane
    e da codice ho inserito un istanza del pannello da me creato dentro lo scroll col seguente codice (dimmi perfavore se ho sturato!):

    scroll.getViewport().add(pannello,null);

    Tutto funziona tranne quando faccio girare l'applicazione:
    nessun errore, ma lo scroll non fa affatto il suo dovere.
    Mi spiego: non escono fuori le barre di scorrimento e quindi del mio pannelo creato si vede solo la parte superiore sinistra.
    Eppure nelle proprietà dello scroll le policies per la comparsa delle barre di scorrimento sono "as_needed".

    Se riuscite a campire dove sbaglio ve ne sono grato!

    Ciao

  4. #4
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    ma l'errore di non visualizzarti le scroll te lo dà solo da designer o anche in run-time?
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Prova a costruire lo scrollpane direttamente sul tuo componente:

    JScrollPane scroll = new JScrollPane(pannello);

    Se neanche cosi funziona a dovere fai una prova agiungendo il tuo pannello ad un altro JPanel p con BorderLayout e poi costruisci lo scroll su p:

    JPanel p = new JPanel(new BorderLayout());
    p.add(panello, "Center");
    JScrollPane scroll = new JScrollPane(p);


    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    Originariamente inviato da Mods
    ma l'errore di non visualizzarti le scroll te lo dà solo da designer o anche in run-time?

    anche a runtime.


    adesso faccio le prove indicate da anx721

  7. #7
    uffa...

    neppure le prove hanno dato buon esito...

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Posta il codice, piu completo possibile

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  9. #9
    ok, allora, questo è il codice del Panel che deve avere la possibilità di essere scorso con le barre di scorrimento:

    codice:
    package creasito;
    
    import java.awt.*;
    import javax.swing.*;
    
    public class PannelloProva extends JPanel {
      JButton jButton1 = new JButton();
      JButton jButton2 = new JButton();
    
      public PannelloProva() {
        try {
          jbInit();
        }
        catch(Exception ex) {
          ex.printStackTrace();
        }
      }
    
      void jbInit() throws Exception {
        jButton1.setBounds(new Rectangle(0, 0, 565, 25));
        jButton1.setText("jButton1");
        this.setLayout(null);
        jButton2.setBounds(new Rectangle(491, 579, 73, 25));
        jButton2.setText("jButton2");
        this.add(jButton1, null);
        this.add(jButton2, null);
      }
    }
    e qui riporto invece il codice del dialog frame che contiene lo scroller:

    codice:
    package creasito;
    
    import java.awt.*;
    import javax.swing.*;
    import com.borland.internetbeans.*;
    import java.awt.event.*;
    import javax.swing.border.*;
    
    
    public class LayoutPicker extends JDialog {
      JPanel panel1 = new JPanel();
      JTextArea jTextArea1 = new JTextArea();
      ButtonGroup lybg = new ButtonGroup();
      JButton conferma = new JButton();
      Layout l=new Layout();
      JScrollPane jScrollPane1 = new JScrollPane();
      Border border1;
      ImageIcon l1=new ImageIcon();
      ImageIcon l2=new ImageIcon();
    
      public LayoutPicker(Frame frame, String title, boolean modal) {
        super(frame, title, modal);
        try {
          jbInit();
          pack();
        }
        catch(Exception ex) {
          ex.printStackTrace();
        }
      }
    
      public LayoutPicker() {
        this(null, "", false);
      }
    
      private void jbInit() throws Exception {
        panel1.setLayout(null);
        jTextArea1.setBackground(SystemColor.control);
        jTextArea1.setFont(new java.awt.Font("Microsoft Sans Serif", 0, 12));
        jTextArea1.setEditable(false);
        jTextArea1.setText("text");
        jTextArea1.setLineWrap(true);
        jTextArea1.setWrapStyleWord(true);
        jTextArea1.setBounds(new Rectangle(33, 18, 571, 36));
        conferma.setBounds(new Rectangle(44, 435, 116, 25));
        conferma.setText("Conferma");
        conferma.addActionListener(new LayoutPicker_conferma_actionAdapter(this));
        jScrollPane1.setBounds(new Rectangle(17, 63, 614, 317));
        panel1.add(conferma, null);
        panel1.add(jScrollPane1, null);
        panel1.add(jTextArea1, null);
        this.getContentPane().add(panel1,  BorderLayout.CENTER);
        PannelloProva p=new PannelloProva();
        jScrollPane1.getViewport().add(p, null);
      }
    
      void conferma_actionPerformed(ActionEvent e) {
          }
    }
    
    class LayoutPicker_conferma_actionAdapter implements java.awt.event.ActionListener {
      LayoutPicker adaptee;
    
      LayoutPicker_conferma_actionAdapter(LayoutPicker adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.conferma_actionPerformed(e);
      }
    }

    ecco qui!

    il problema è sempre lo stesso.

    tutto viene visualizzato correttamente ma il pannello dentro lo scroll non si vede per intero e non ci sono le scrollbars

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Con il layout settato a null non si fa niente di buono; già e difficile far funzionare sempre un JScrollPane impostando attentamente i layout; se poi utilizzi il null layout e imposti le dimensioni con setBounds...tra l'altro le dimensioni sembrano impostate un po a casaccio.

    Se hai intenzione di continuare a disegnare le interfacce con JBuilder no nti posso aiutare; se vuoi imparare a programmarle da codice potendo costruire con precisione l'interffaccia descrivi come vuoi che sia il tuo pannello e ti do qualke dritta.


    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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 © 2025 vBulletin Solutions, Inc. All rights reserved.