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

    [JAVA] Rendere invisibile barra superiore della finestra.

    Salve a tutti, vorrei creare un programma dove non sia visibile la barra che c'è sopra ogni finestra, giusto per capirsi quella con "chiudi a icona", "ripristina" e "chiudi".

    E' possibile?
    Se si, qual è il metodo per farlo?

    Grazie.
    T.

  2. #2
    Ma vedo che parecchi avete litigato con il javadoc

  3. #3
    Grazie per la risposta

    Purtroppo il problema è che non ho idea di come si chiama la fantomatica barra, e non poso certo dire: "ehi javadoc! come levo la barra, sai, quella sopra?". :P
    T.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da TommyDelVed
    Grazie per la risposta

    Purtroppo il problema è che non ho idea di come si chiama la fantomatica barra, e non poso certo dire: "ehi javadoc! come levo la barra, sai, quella sopra?". :P
    Beh dai, con un minimo di ragionamento trovi tutto, poi basta sapere usare i motori di ricerca

    Cosa c'è in quella barra? Il titolo della finestra. Prova a cercare su google una cosa tipo

    jframe remove title bar
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Ho combinato!
    Grazie.
    T.

  6. #6
    RIAPRO il thread poichè ho riscontrato un problema:

    Per far scomparire la barra con i tasti "chiudi", etc, ho utilizzato il metodo setUndecorated(true) , che ha funzionato, ma causa un problema.
    Non elimina solo la barra con il titolo e i pulsanti in questione, ma anche tutto il bordino attorno alla finestra, e tutto questo implica che, se non da codice, io non ho più la possibilità di ridimensionare o spostare la gui.

    Quindi, la mia domanda è:
    Esiste un altro metodo per evitare tutto questo? (io non l'ho trovato)
    Nel qual caso mi debba tenere questo, posso creare due pulsanti che attivino o meno ("In corsa") il comando?
    Così se devo ridimensionarla o spostarla clicco il pulsante, faccio quello devo fare e poi disattivo di nuovo il tutto.
    Se si può fare, potete postare un frammento di codice esplicativo?

    Grazie.
    T.

  7. #7
    In effetti è vero un Componente non decorato non ha i bordi quindi ovviamente non vi è possibilità di ridimensionarlo....
    Ma dato che siamo programmatori (sarcasmo ON....) basta gestire il ridimensionamento...
    Quindi ti basta aggiungere un MouseMotionListener e gestire i vari eventi che vengono scaturiti....
    codice:
    public class ResizeListener extends MouseMotionAdapter {
    
    	public void mouseMoved(MouseEvent e) {
    		JFrame component = (JFrame) e.getComponent();
    		if (e.getX() < 10 || e.getX() > (component.getWidth() - 10)
    				|| e.getY() < 10 || e.getY() > (component.getHeight() - 10)) {
    			((JPanel) component.getContentPane()).setBorder(BorderFactory
    					.createEtchedBorder());
    		} else {
    			((JPanel) component.getContentPane()).setBorder(BorderFactory
    					.createEmptyBorder());
    		}
    	}
    
    	public void mouseDragged(MouseEvent e) {
    		JFrame component = (JFrame) e.getComponent();
    		Rectangle bounds = component.getBounds();
    		Point p = e.getPoint();
    		if (p.x < 10) {
    			component.invalidate();
    			SwingUtilities.convertPointToScreen(p, component.getContentPane());
    			int diff = bounds.x - p.x;
    			bounds.x = p.x;
    			bounds.width += diff;
    			component.setBounds(bounds);
    			component.validate();
    		} else if (e.getX() > (component.getWidth() - 10)) {
    			component.invalidate();
    			bounds.width = p.x;
    			component.setBounds(bounds);
    			component.validate();
    		} else if (e.getY() < 10) {
    			component.invalidate();
    			SwingUtilities.convertPointToScreen(p, component.getContentPane());
    			int diff = bounds.y - p.y;
    			bounds.y = p.y;
    			bounds.height += diff;
    			component.setBounds(bounds);
    			component.validate();
    		} else if (e.getY() > (component.getHeight() - 10)) {
    			component.invalidate();
    			bounds.height = p.y;
    			component.setBounds(bounds);
    			component.validate();
    		}
    	}
    }
    Per usare questo codice ti basta richiamare "addMouseMotionListener(new ResizeListener());". Questo vuole essere un esempio ovviamente modificalo ed adattalo al tuo codice.

    Francesco.

  8. #8
    Originariamente inviato da francesco.muia
    In effetti è vero un Componente non decorato non ha i bordi quindi ovviamente non vi è possibilità di ridimensionarlo....
    Ma dato che siamo programmatori (sarcasmo ON....) basta gestire il ridimensionamento...
    Quindi ti basta aggiungere un MouseMotionListener e gestire i vari eventi che vengono scaturiti....
    codice:
    public class ResizeListener extends MouseMotionAdapter {
    
    	public void mouseMoved(MouseEvent e) {
    		JFrame component = (JFrame) e.getComponent();
    		if (e.getX() < 10 || e.getX() > (component.getWidth() - 10)
    				|| e.getY() < 10 || e.getY() > (component.getHeight() - 10)) {
    			((JPanel) component.getContentPane()).setBorder(BorderFactory
    					.createEtchedBorder());
    		} else {
    			((JPanel) component.getContentPane()).setBorder(BorderFactory
    					.createEmptyBorder());
    		}
    	}
    
    	public void mouseDragged(MouseEvent e) {
    		JFrame component = (JFrame) e.getComponent();
    		Rectangle bounds = component.getBounds();
    		Point p = e.getPoint();
    		if (p.x < 10) {
    			component.invalidate();
    			SwingUtilities.convertPointToScreen(p, component.getContentPane());
    			int diff = bounds.x - p.x;
    			bounds.x = p.x;
    			bounds.width += diff;
    			component.setBounds(bounds);
    			component.validate();
    		} else if (e.getX() > (component.getWidth() - 10)) {
    			component.invalidate();
    			bounds.width = p.x;
    			component.setBounds(bounds);
    			component.validate();
    		} else if (e.getY() < 10) {
    			component.invalidate();
    			SwingUtilities.convertPointToScreen(p, component.getContentPane());
    			int diff = bounds.y - p.y;
    			bounds.y = p.y;
    			bounds.height += diff;
    			component.setBounds(bounds);
    			component.validate();
    		} else if (e.getY() > (component.getHeight() - 10)) {
    			component.invalidate();
    			bounds.height = p.y;
    			component.setBounds(bounds);
    			component.validate();
    		}
    	}
    }
    Per usare questo codice ti basta richiamare "addMouseMotionListener(new ResizeListener());". Questo vuole essere un esempio ovviamente modificalo ed adattalo al tuo codice.

    Francesco.
    Grazie mille per la risposta
    Purtroppo non mi ero mai avvicinato ad un codice simile a questo, e quindi non capisco molto.
    Potresti consigliarmi dove poter andare a leggere qualcosa a riguardo?

    Grazie ancora
    T.

  9. #9
    Uhm... Cosi in generale...
    Cerca di essere più preciso, cos'è che non ti è chiaro ?

  10. #10
    Originariamente inviato da francesco.muia
    Uhm... Cosi in generale...
    Cerca di essere più preciso, cos'è che non ti è chiaro ?
    Cercherò di spiegarmi narrandoti cosa ho fatto :P

    Ho letto il tuo codice, ho più o meno capito cosa fa, ma non sarei in grado di modificarlo.
    L'ho copia incollato così com'è sul mio codice, avviato e il risultato è stato che se vado a "sbattere" contro i bordi della finestra, tenendo premuto il mouse, questa si allarga o si restringe.

    E fin qua ci sta tutto.
    Quello che mi domando, e da qui ti chiedevo dove posso trovare una documentazione, è se posso fare questa cosa solo se seleziono il bordo della finestra, poichè così com'è adesso se uno la schiaccia accidentalmente questa si ingrandisce in maniera apparentemente casuale (se l'utente non conosce questa funzione).
    E poi, siccome ho aggiunto questo frammento:
    codice:
    addMouseListener(new MouseAdapter() {
    	public void mousePressed(MouseEvent e) {
    	 X = e.getX();
    	 Y = e.getY();
    	}
    });
    		 
    addMouseMotionListener(new MouseMotionAdapter() {
    	public void mouseDragged(MouseEvent e) {
    	 setLocation(getLocation().x + (e.getX() - X),getLocation().y + (e.getY() - Y));
    	}
    });
    Per poter trascinare la finestra in giro per lo schermo, ottengo che se la voglio spostare, questa si ingrandisce :S

    Quindi, siccome non voglio essere quello che chiede il codice, lo copiaincolla e poi è apposto, chidevo dove poter trovare una documentazione adeguata, a meno che tu non sia così tanto gentile da spiegarmi il funzionamento del tutto

    Grazie ancora.
    T.

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.