Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140

    layout

    ciao a tutti, sto impazzendo con il layout. Usando quelli di default le varie componenti si settano come gli pare... è difficile farne uno proprio? seconda domanda: ho applicato un borderlayout. Quando riduco la dimensione del monitor perchè ne attacco un altro (touch) perchè mi ridimensiona il center e l'east no? grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: layout

    Originariamente inviato da Aleb
    ciao a tutti, sto impazzendo con il layout. Usando quelli di default le varie componenti si settano come gli pare...
    E' proprio a questo che servono i LayoutManager...

    è difficile farne uno proprio?
    Facile facile non è. Devi studiarti a fondo con funzionano, seguendo anche i tutorial della Sun.

    seconda domanda: ho applicato un borderlayout. Quando riduco la dimensione del monitor perchè ne attacco un altro (touch) perchè mi ridimensiona il center e l'east no? grazie
    Perchè il BorderLayout funziona proprio così: il pannello centrale viene ridimensionato in base alla finestra... tutto il resto no. Se hai un solo componente (e non è nel pannello centrale) questo si adatta ad occupare tutto lo spazio disponibile.

    PS: anche se "sconsigliato", puoi sempre fare a meno di usare i LayoutManager e posizionare/ridimensionare i componenti programmaticamente. Basta settare a "null" il LayoutManager e usare setBounds() su ciascun componente per settarne posizione e dimensione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    io ho un pannello con il border layout
    al centro devo mettere un altro pannello con dentro delle table. questo pannello è uno scrollpane. lo scroll pane è dentro ad un altro pannello che si chiama center con layout X_axis. io a center aggiunto lo scrollpane con le table e un altro pannellocon dei button. perchè quello con lo scroll mi va sotto a quello dei button?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    127
    prova ad utilizzare un JPanel con BoxLayout in cui aggiungi lo scrollpane e il pannello con i pulsanti, nel BoxLayout puoi impostare l'allineamento X_Axis .

    questo pannello con BoxLayout poi lo metti nel pannello principale nella posizione BorderLayout.Center.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    forse ho capito male o mi sono spiegata male. Mi sembra di avere fatto proprio come dici: dunque il mio contenitore ha il borderlayout, creo un pannello (chiamato centro) con box layou x_axis. Un secondo pannello contiene le tabelle ed a esso metto un scollpane. questo pannello con lo scroll e quello con i button li metto nel pannello "centro" che metto nell borderLayout.center.

    il problema è che il pannello delle table mette anche lo scroll orizzontale perchè va a finire sotto i pulsanti... xkè?

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Aleb
    Un secondo pannello contiene le tabelle ed a esso metto un scollpane. questo pannello con lo scroll e quello con i button li metto nel pannello "centro" che metto nell borderLayout.center.

    il problema è che il pannello delle table mette anche lo scroll orizzontale perchè va a finire sotto i pulsanti... xkè?
    Da quello che hai scritto sembra che tu abbia messo due pannelli in posizione CENTER. Questo non va bene, usando BorderLayout puoi mettere un unico componente in ogni posizione.

    Se non è così posta un po' di codice, altrimenti non ci capiamo :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    METTO IL CODICE ...

    codice:
    	public GuiScontrino(){
    		super("");
    		setSize(1275,760); 
            	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           		 setVisible(true);    
    		setLayout(new BorderLayout()); 
    
    	//dichiarazione componenti
    		
    		//************ CENTRO *********************				
    	
    		contenitoreTable=new JPanel();
    	contenitoreTable.setLayout(new BoxLayout(contenitoreTable,BoxLayout.Y_AXIS));
    	
    //creo table qui ne aggiungo una sola
    perLayoutExtra=new JPanel();
    		perLayoutExtra.setLayout(new GridLayout(2,1));
    		JPanel perLayout2=new JPanel();
    		perLayout2.setLayout(new GridLayout(2,1));
    	
    tableExtra = new MyTable(perModelExtra,m2,0);
    		tableVuota=new MyTable(new ArrayList());
    		perLayoutExtra.add(tableVuota);
    		perLayoutExtra.add(labelExtra);
    		tableVuota=new MyTable(new ArrayList());
    		perLayout2.add(varieInizio);
    		perLayout2.add(tableVuota);
    		contenitoreTable.add(perLayoutExtra);
    		contenitoreTable.add(tableExtra);
    		contenitoreTable.add(perLayout2);
    		
    	
    		
    		
    		scrollTable=new JScrollPane(contenitoreTable);
    		scrollTable.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    		
    			
    		JPanel c3=new JPanel();
    		c3.setLayout(new GridLayout(8,1,0,10)); //sarebbero 6
    		c3.add(new JLabel(" "));
    		c3.add(extra);
    		c3.add(primi);
    		c3.add(secondi);
    		c3.add(contorni);
    		c3.add(bevande);
    		c3.add(pizze);
    		c3.add(new JLabel(" "));
    			
    		centro=new JPanel();
    		centro.setLayout(new BoxLayout(centro,BoxLayout.X_AXIS));
    		
    		centro.add(scrollTable);
    		centro.add(c3);
    				
    		centro.setBorder(BorderFactory.createLineBorder (Color.BLACK, 4));
    		this.add(centro,BorderLayout.CENTER);

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    127
    l problema è che il pannello delle table mette anche lo scroll orizzontale perchè va a finire sotto i pulsanti... xkè?
    quando dici sta cosa, intendi dire che lo scrollpane in parte è nascosto dai pulsanti ?

    spiegati meglio, perchè il codice sembra filare liscio, magari anzichè setSize usa pack()

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    si esatto, io vorrei diventasse più piccola (ovviamente in larghezza) la table che c'è dentro nello scroll). ma anche se cambio la larghezza delle colonne + di tanto non si stringe. Vorrei si vedesse tutto lo scroll senza dover avere la barra orizzontale. grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    127
    se la tua MyTable è una JTable potresti provare ad invocare

    setMaximumSize(Dimension maximumSize)

    in questo modo il size non dovrebbe superare quello che imposti , però non ti assicuro nulla, non ci ho mai provato con le table...

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.