Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    262

    scrollbar - scrollpane

    vorrei aggiungere una scrollbar alla mia applicazione java come quella dei comuni browser. Dal momento che la pagina java da visualizzare è grande, voglio aggiungere questa scrollbar in modo da visualizzare anche cose che sarebbero inevitabilmente nascoste.
    Owiamente, all'interno della pagina ci sono JTable, Jpanel e tutto il resto. Ho già assegnato delle JscrollPane alle JTable e vanno ok ma non riesco ad associarle all'intera pagina.
    Sostanzialmente ho 4 JpanelBox (con all'interno la loro roba già tutta funzionante).
    Avevo pensato di creeare un Jpanel che contenesse i 4 JPanelBox ed associare la ScrollBar al JPanel.
    Risultato: la scrollBar la visualizzo ma se scorro la pagina non scende eppure ho associato la scrollBar al JPanel!

    VVoVe:

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Genera direttamente un JScrollPane e passagli come parametro il JPanel generale.

    Avrai qualcosa del genere
    codice:
    JScrollPane applPane = new JScrollPane(jPanelAppl);
    applWindow.getContentPane().add(applPane);
    Dove con applWindow intendo il JFrame che funge da contenitore principale dell'applicazione
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    262
    non funge

  4. #4
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193
    Il metodo da usare è proprio quello scritto da Andrea1979 magari il problema è nel Layout, oppure riprova in questo modo:

    codice:
    JScrollPane applPane = new JScrollPane(jPanelAppl);
    getContentPane().add(applPane);
    che poi è la stessa cosa. Ma magari

    Altrimenti posta un pò di codice

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    262
    codice:
     //questo scrollpane funge
    				JScrollPane scrollPaneRiepilogo = new JScrollPane(tabellariepilogo);
    		scrollPaneRiepilogo.setBounds(5,20,880,110);
    		scrollPaneRiepilogo.setVisible(true);
    		panelriepilogo.add(scrollPaneRiepilogo,null);	
    
    //questo scrollpane globale non funge		
    		JScrollPane scrolldesktop = new JScrollPane();
    		scrolldesktop.setLayout(null);
    		scrolldesktop.setBounds(0,0,desktop.getWidth()-20,desktop.getHeight()-100);
    		scrolldesktop.setVisible(true);
    		
    /*		JScrollBar scrollbar = new JScrollBar();
    		scrollbar.setBounds(desktop.getWidth()-30,0,desktop.getWidth(),desktop.getHeight()-130);
    		scrollbar.setVisible(true);
    */			
    		if ( paneldatigara != null) {
    			scrolldesktop.add(paneldatigara);
    		}
    		scrolldesktop.add(panelricerca);
    		scrolldesktop.add(panellottodigara);
    		scrolldesktop.add(panelarticolo);
    		scrolldesktop.add(panelprodotto);
    		scrolldesktop.add(panelriepilogo);
    //		scrolldesktop.add(scrollbar);
    				
    		//nuovafinestra.add(scrolldesktop);
    		//desktop.add(nuovafinestra);
    		
    		desktop.add(scrolldesktop);

  6. #6
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193
    Non so bene il perchè e non posso neanche provare il tuo codice, perchè sono fuori sede. Cmq prova ad inserire tutti quei pannelli in un unico pannello, e poi passa quest'ultimo al costruttore del JScrollPane.
    Quindi nel tuo caso aggiungi ad un nuovo Pannello :

    panelricerca
    panellottodigara
    panelarticolo
    panelprodotto
    panelriepilogo

    e poi fai:

    codice:
    JScrollPane scrolldesktop = new JScrollPane(nuovoPannello);

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    262
    codice:
    		JPanel paneldesktop = new JPanel();
    		paneldesktop.setLayout(null);
    		paneldesktop.setBounds(0,0,desktop.getWidth()-20,desktop.getHeight()-100);
    		paneldesktop.setVisible(true);
    		if ( paneldatigara != null) {
    			paneldesktop.add(paneldatigara);
    		}
    		paneldesktop.add(panelricerca);
    		paneldesktop.add(panellottodigara);
    		paneldesktop.add(panelarticolo);
    		paneldesktop.add(panelprodotto);
    		paneldesktop.add(panelriepilogo);
    		
    		JScrollPane scrolldesktop = new JScrollPane(paneldesktop);
    		scrolldesktop.setLayout(null);
    		scrolldesktop.setBounds(0,0,desktop.getWidth()-20,desktop.getHeight()-100);
    		scrolldesktop.setVisible(true);
    
    		desktop.add(scrolldesktop);
    il pannello è tutto grigio, come se fosse vuto!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    262
    ho capito il problema ... dipende dal layout!
    Finalmente funziona ma solo con un panel (paneldatigara) che ha un GridLayout(3,4), tutti gli altri panel hanno un layout(NULL)

    COME DICHIARO il layout del JScrollPane in questo caso?
    O devo modificare i layout di tutti gli altri Panel? ... sarebbe un lavoraccio :-(

    owiamente le cose commentate saltatele

    codice:
    		JPanel paneldesktop = new JPanel();
    	//	paneldesktop.setLayout(null);
    	//	paneldesktop.setBounds(0,0,desktop.getWidth()-200,desktop.getHeight()-100);
    		paneldesktop.setVisible(true);
    	/*	if ( paneldatigara != null) {
    			paneldesktop.add(paneldatigara);
    		}*/
    		paneldesktop.add(panelricerca);
    	/*	paneldesktop.add(panellottodigara);
    		paneldesktop.add(panelarticolo);
    		paneldesktop.add(panelprodotto);
    		paneldesktop.add(panelriepilogo);
    	*/	
    		JScrollPane scrolldesktop = new JScrollPane(paneldesktop);
    	//	scrolldesktop.setLayout(null);
    		scrolldesktop.setBounds(0,0,desktop.getWidth()-200,desktop.getHeight()-100);
    		scrolldesktop.setVisible(true);
    		
    /*		JScrollBar scrollbar = new JScrollBar();
    		scrollbar.setBounds(desktop.getWidth()-30,0,desktop.getWidth(),desktop.getHeight()-130);
    		scrollbar.setVisible(true);
    */			
    /*		if ( paneldatigara != null) {
    			scrolldesktop.add(paneldatigara);
    		}
    		scrolldesktop.add(panelricerca);
    		scrolldesktop.add(panellottodigara);
    		scrolldesktop.add(panelarticolo);
    		scrolldesktop.add(panelprodotto);
    		scrolldesktop.add(panelriepilogo);*/
    //		scrolldesktop.add(scrollbar);
    				
    		//nuovafinestra.add(scrolldesktop);
    		//desktop.add(nuovafinestra);
    		
    		desktop.add(scrolldesktop);

  9. #9
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193
    Prova a non dichiarare niente nel JScrollPane. Cioè

    codice:
    JPanel paneldesktop = new JPanel();
    paneldesktop.add(panelricerca);
    paneldesktop.add(panellottodigara);
    paneldesktop.add(panelarticolo);
    paneldesktop.add(panelprodotto);
    paneldesktop.add(panelriepilogo);
    paneldesktop.setLayout(new FlowLayout());
    
    JScrollPane scrolldesktop = new JScrollPane(paneldesktop);
    desktop.add(scrolldesktop);
    Hai provato così?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    262
    ho provato adesso ma prende solo il pannello che ha un GridLayout.

    Ho invece dichiarato il Jpanel come un GridLayout(6,1) e riesco a visualizzare tutti i panel che aggiungo, ma ho soltanto la scrollbar orizzontale ed a me serve verticale! Inoltre, questa soluzione mi modifica la grandezza dei panel che inserisco ... magari qesta cosa la sistemo dopo!

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.