Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[Java] Gestori di posizione

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] [Java] Gestori di posizione

Messaggioda Foto UtenteTardoFreak » 14 nov 2010, 14:00

Un altro dubbio da dissipare: usare o no i gestori di posizione?
In visual basic posizionavo i componenti (pulsanti, finestre e tutto il resto) controllando le loro coordinate. Se un pulsante doveva rimanere affiancato ad un altro calcolavo le coordinate in base alle dimensioni del pulsante e lo disponevo di conseguenza.
Usavo questo sistema soprattutto per le finestre di testo che dovevano adattarsi alla grandezza del frame. Nella procedura che ridimensionava il frame ricalcolavo tutte le posizioni dei vari controlli e le adattavo alla nuova dimensione.
Ora vedo che in Java ci sono i vari FlowLayout, GridLayout etc.
Il dubbi che ho sono:
- E' bene utilizzarli?
- Se si, perche'?
- Di solito vengono usati o si preferisce il posizionamento assoluto?
- Voi che programmate in Java li usate? Quando? Perche'?

Ringrazio anticipatamente.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[2] Re: [Java] Gestori di posizione

Messaggioda Foto UtenteDarwinNE » 14 nov 2010, 16:02

TardoFreak ha scritto:- E' bene utilizzarli?

:D

TardoFreak ha scritto:- Se si, perche'?

Beh, perché fanno il lavoro "sporco" al posto tuo.

TardoFreak ha scritto:- Di solito vengono usati o si preferisce il posizionamento assoluto?

Beh, io li ho sempre usati. Il posizionamento assoluto l'ho sempre considerato poco elegante perché poco adattabile a situazioni e risoluzioni molto diverse. Purtroppo, molte Human Interface Guidelines danno informazioni sul posizionamento degli elementi in pixel considerando un posizionamento assoluto, il che per quanto mi riguarda è una stupidata. Senza contare che se si internazionalizza un programma, non si può sapere a priori la lunghezza delle varie stringhe che appariranno nei menu e negli elementi e non si può quindi calcolarne a priori la posizione.

TardoFreak ha scritto:- Voi che programmate in Java li usate? Quando? Perche'?

Io li ho sempre usati. Quasi tutte le finestre di dialogo di FidoCadJ sono quasi sempre basate sul GridLayout e qualcosettina in più per gestire per esempio il posizionamento dei tasti OK e Annulla (il cui ordine oltretutto dipende dalla piattaforma).

Forse qui è parzialmente OT, ma mi permetto di fornire un link ad un articolo pubblicato su Pluto Journal, legato allo sviluppo delle interfacce utente in ambito libero:

http://www.pluto.it/files/journal/pj0404/fsui.html
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[3] Re: [Java] Gestori di posizione

Messaggioda Foto UtenteTardoFreak » 14 nov 2010, 20:23

Grazie mille per la risposta. :D

Ho verificato sui libri. In effetti la gestione dei contenitori e' molto piu' semplice e potente che in VB, quindi optero' per il loro utilizzo. Questa sera procedero' con la sperimentazione.

[Nota personale] Devo ammettere che il Java e' veramente un bel linguaggio, piu' lo studio piu' mi piace. Anche perche' sono stufo di dover continuamente imparare linguaggi e/o dialetti di programmazione per poter scrivere programmi che girino su piu' piattaforme.
Scrivo programmi per PC solo quando non ne posso fare a meno. Scriverli non mi esalta ma mi servono per il mio lavoro. :?
I micro invece continuano a piacermi. Per loro faccio volentieri qualche sforzo in piu'. :mrgreen:

Edit: Li ho provati e ... funzionano benone, meglio usare loro. :ok:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[4] Re: [Java] Gestori di posizione

Messaggioda Foto UtenteDarwinNE » 15 nov 2010, 1:09

TardoFreak ha scritto:[Nota personale] Devo ammettere che il Java e' veramente un bel linguaggio, piu' lo studio piu' mi piace. Anche perche' sono stufo di dover continuamente imparare linguaggi e/o dialetti di programmazione per poter scrivere programmi che girino su piu' piattaforme.


Sì, queste considerazioni sono un po' le stesse che hanno portato me a scegliere Java alcuni anni fa. Personalmente, mi trovo abbastanza bene, anche se certe espressioni le trovo un po' prolisse.
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[5] Re: [Java] Gestori di posizione

Messaggioda Foto Utenteposta10100 » 15 nov 2010, 15:14

TardoFreak ha scritto:Devo ammettere che il Java e' veramente un bel linguaggio, piu' lo studio piu' mi piace. Anche perche' sono stufo di dover continuamente imparare linguaggi e/o dialetti di programmazione per poter scrivere programmi che girino su piu' piattaforme.

Questo e` il vantaggio piu` grosso di java.
TardoFreak ha scritto:Edit: Li ho provati e ... funzionano benone, meglio usare loro. :ok:

Si, sono molto comodi anche se ogni tanto Java pasticcia un po con la grafica, soprattutto se deve eseguire delle routine che impegnano molto il processore.
O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[6] Re: [Java] Gestori di posizione

Messaggioda Foto UtenteTardoFreak » 15 nov 2010, 15:38

Altra domanda.
Io associo i pannelli alle varie regioni del gestore di Layout. Questi posso essere dei gestori, e fin qui tutto OK.
Posso poi usare il posizionamento assoluto all' interno di un singolo pannello per esigenze mie particolari?
E se si, devo impostare un gestore particolare per quel pannello o lo imposto null?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[7] Re: [Java] Gestori di posizione

Messaggioda Foto UtenteTardoFreak » 15 nov 2010, 17:17

Qualcosa mi sfugge, questo e' il sorgente:
Codice: Seleziona tutto
class TermForm extends JFrame
{
  // Dichiarazione dei controlli
  // Pannello comandi
  public JPanel PanelComandi;
  public JButton PulsConn;
 
  // Pannello di testo
  public JPanel PanelSchermo;
  public JTextArea Schermo;
  private Rectangle r;
 
  // Costruttore
  public TermForm ()
  { 
    Container Contenitore = getContentPane();
   
    // Frame principale
    setTitle("Emulatore Terminale");
    setSize(300,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
   
    // Gestore del Layouut al livello Top
    Contenitore.setLayout(new BorderLayout());
   
    // Pannello dei comandi
    PanelComandi = new JPanel(new FlowLayout());
    // Pulsante di connessione
    PulsConn = new JButton();
    PanelComandi.add(PulsConn);
    PulsConn.setBounds(0,0,120,30);
    PulsConn.setText("Connect");
    PulsConn.setToolTipText("Press to connect/disconnect to selected serial port");
   
    // Area di testo
    PanelSchermo = new JPanel(new FlowLayout());
    Schermo = new JTextArea();
    PanelSchermo.add(Schermo);
   
    Contenitore.add(PanelComandi, BorderLayout.NORTH);
    Contenitore.add(PanelSchermo, BorderLayout.CENTER);  // <--- PROBLEMA!!!
   
  }
}

L' area di testo non mi compare.

Se nell' ultima riga scrivo
Codice: Seleziona tutto
Contenitore.add(Schermo, BorderLayout.CENTER);

L' area di testo mi compare

Oibo' :(

Edit: ho provato a sostituire la linea
Codice: Seleziona tutto
PanelSchermo = new JPanel(new FlowLayout());


con
Codice: Seleziona tutto
PanelSchermo = new JPanel(new GridLayout(1,1));


Ed ora funziona. Ma non capisco il perche'. :-M
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare


Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti