Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-05-2009, 18:13   #1
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
[Java] posizionare componenti senza layout manager

devo fare un piccolo progetto per la scuola. Posso fare qualsiasi cosa l'importante è che usi le socket. Siccome pensavo di farlo con interfaccia grafica sto facendo un po' di prove. faccio setLayout(null) nel JFrame però se cerco di posizionare i componenti con setBounds() non c'è verso che si spostino.

qualcuno mi sa aiutare?
al limite, c'è qualche layoutManager semplice da usare, adatto anche per progetti piccoli?

grazie
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 19:15   #2
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1060
io di solito inserisco all'interno del JFrame un JPanel impostato con setLayout(null)

esempio:
Codice:
        /* mainPanel */
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(null);


        /* JFrame */
        /*....
        */
        this.getContentPane().add(mainPanel);
e poi posiziono i vari componenti con setBounds all'interno del panel
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 19:42   #3
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
guarda io ho questo codice

Codice:
package socketproject;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

public class Gui extends JFrame
{
	private static final long serialVersionUID = 4667623015432940473L;
	private JPanel panel;
	private ButtonDemo button;
	
	public Gui()
	{
		try 
	    {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
	    } 
		catch (Exception e) 
		{
			System.err.println( "Errore di creazione Look&Feel" );
		}
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(600, 400);
		this.setLocation(300, 200);
		this.setTitle("Provvisorio");
		this.setLayout(null);
		
		panel = new JPanel();
		panel.setBackground(Color.LIGHT_GRAY);
		
		button = new ButtonDemo("cliccami");
		button.addActionListener(button);
		
		panel.add(button);
		
		this.add(panel);
		this.setContentPane(panel);
	}
}
visualizza il bottone ma se provo a spostarlo non c'è verso.. ho provato ad adattarlo al tuo ma niente, deve esserci una cosa che esclude un'altra.. addirittura nemmeno lo visualizza il bottone.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 19:59   #4
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1060
modifica in questo modo:

Codice:
package socketproject;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

public class Gui extends JFrame
{
	private static final long serialVersionUID = 4667623015432940473L;
	private JPanel panel;
	private ButtonDemo button;
	
	public Gui()
	{
		try 
	    {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
	    } 
		catch (Exception e) 
		{
			System.err.println( "Errore di creazione Look&Feel" );
		}
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(600, 400);
		this.setLocation(300, 200);
		this.setTitle("Provvisorio");
		//this.setLayout(null); //Va fatto sul panel
		
		panel = new JPanel();
		panel.setBackground(Color.LIGHT_GRAY);
		panel.setLayout(null);
		
		button = new ButtonDemo("cliccami");
		button.setBounds(...);                           //Da sistemare
		button.addActionListener(button);
		
		this.getContentPane().add(panel);

		panel.add(button);
	}
}
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 20:07   #5
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
guarda, fatto così:

Codice:
package socketproject;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

public class Gui extends JFrame
{
	private static final long serialVersionUID = 4667623015432940473L;
	private JPanel panel;
	private ButtonDemo button;
	
	public Gui()
	{
		try 
	    {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
	    } 
		catch (Exception e) 
		{
			System.err.println( "Errore di creazione Look&Feel" );
		}
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(600, 400);
		this.setLocation(300, 200);
		this.setTitle("Provvisorio");
		
		panel = new JPanel();
		panel.setLayout(null);
		panel.setBackground(Color.LIGHT_GRAY);
		 
		button = new ButtonDemo("cliccami");
		button.setBounds(400, 300, button.getWidth(), button.getHeight());
		button.addActionListener(button);
		
		this.getContentPane().add(panel);
		
		panel.add(button);
	}
}
ma non si vede il bottone.. e una cosa, nel setBounds per x e y, devo tenere conto di dove è collocata la finestra?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 20:21   #6
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1060
qui devi passare le coordinate x, y (che non dipendono dalla posizione della finestra) e la dimensione del pulsante width e height

Codice:
button.setBounds(400, 300, button.getWidth(), button.getHeight());
ora non conosco la classe ButtonDemo e quindi non so cosa ritornano i metodi getWidth() e getHeight() (probabilmente ritornano 0 se il pulsante non si vede..) infatti se fai:

Codice:
button.setBounds(400, 300, 80, 30);
il pulsante viene visualizzato correttamente (avendolo però precedentemente dichiarato come JButton, visto che non ho la classe ButtonDemo che usi tu)
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 20:48   #7
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
hai ragione
semplicemente ButtonDemo è una mia classe che deriva da JButton. io mettevo button.width e button.height perchè pensavo non avesse senso dare una dimensione e un'altezza quando comunque è fissa..

grazie comunque
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 21:14   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Usa un IDE se vuoi realizzare un'interfaccia grafica e non hai il tempo di studiarne il layout.

Impostare il layout a null può sembrare una soluzione ma complica enormemente le cose.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2009, 10:47   #9
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Usa un IDE se vuoi realizzare un'interfaccia grafica e non hai il tempo di studiarne il layout.

Impostare il layout a null può sembrare una soluzione ma complica enormemente le cose.
il problema è che è un progetto scolastico. e il prof lo gradirebbe tutto fatto a scrittura di codice.
ndakota è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
VPN e DNS nel mirino: la proposta che vu...
Porsche ci riesce: batterie 'rinate' dal...
Xiaomi Redmi Note 17 Series ora su Amazo...
La filigrana che dovrebbe rendere sicuri...
Final Fantasy VII, dopo Revelation potre...
Bonsai 2: ecco come un modello da 27mld ...
Aggiornamento disponibile per i Google P...
YouTube blocca alcuni utenti a 480p: nes...
Il Core i5-14600K potrebbe essere sostit...
RAM (32GB 206€), SSD, monitor gaming, se...
Huawei porta in Italia il MatePad Air: u...
Le IA copiano i contenuti dai siti web, ...
NASA punta di nuovo su Boeing Starliner ...
La Redmi Note 17 Series arriva in Italia...
La guida autonoma arriva a Milano: il Co...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v