Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-05-2009, 19: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, 20:15   #2
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
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, 20: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, 20:59   #4
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
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, 21: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, 21:21   #6
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
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, 21: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, 22: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, 11: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


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
AWS rinnova lo stack dell’IA: Trainium3,...
AWS entra nell'era degli agenti: il keyn...
Roscosmos: inventario a bordo della ISS ...
Arduino viene acquisita da Qualcomm e ca...
Un razzo spaziale Arianespace Vega C ha ...
Terra Next dà il via a Scale-Up P...
Il veicolo riutilizzabile ESA Space Ride...
Un Mousepad per mirare meglio: uno youtu...
Tokyo Electron sotto accusa: Taiwan cont...
L'ESA sta cercando alternative all'utili...
iliad TOP 250 PLUS e TOP 300 PLUS: valan...
FRITZ! a Sicurezza 2025: connessioni WiF...
I 18enni di oggi non fanno più la...
Super offerte Apple: iPhone 16e a 529€ e...
Torres EVT arriva in Italia con listino ...
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: 22:40.


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