Originariamente inviato da anx721
Devi studiarti i layout manager; puoi partire da qui:

http://java.sun.com/docs/books/tutor...out/index.html

seguiti i vari link per iniziare a capirli

farti degli esempi ora è inutile percke l'argometno è molto esteso e anche non semplice, ogni layout si distingue per come dispone i componenti e per come tratta le dimensioni dei componenti inseriti; magari intanto puoi farci capire come vuoi che i tuoi componenti siano inseiti nella finestra e possiamo suggerirti come comporre iltutto; in genere l'effetto voluto si ottiene componendo piu pannelli uno dentro l'altro con diversi layout; ti consiglio di non impostare a null il layout per poter usare le coordinate nella disposizione deicomponenti: anche se all'inizio sono un po difficili coi layout riesci a fare tutto cio che ti serve in maniera piu elegante e meglio organizzata.

Ho dato uno sguardo alla guida che mi hai dato ma sto impazzendo un pò, vorrei utilizzare uno SpringLayout per creare qualcosa del tipo:

c.add(intarea);
c.add(primoTag) - c.add(primoText);
c.add(secondoTag) - c.add(secondoText);
c.add(sommaTag) - c.add(sommaText);
c.add(run);

Dove il primo tag è una scritta di intestazione, dove le variabili che finiscono con Tag sono oggetti JLabel mentre quelli che finiscono con Text sono dei JTextField.

Il codice che uso è il seguente:
codice:
//Includo le librerie per l'interfaccie grafiche

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

//Creo la classe con gli oggetti frafici
public class grafica implements ActionListener {
	
	//Variabili per settare il Layout
	private static final int WINDOW_WIDTH = 500; //pixel
	private static final int WINDOW_HEIGHT = 500; //pixel
	private static final int FIELD_WIDTH = 20; // caratteri
	private static final int AREA_WIDTH = 40; // caratteri
	
	//private static final FlowLayout LAYOUT_STYLE =
	//	new FlowLayout();
		
	private static final SpringLayout LAYOUT_STYLE = new SpringLayout();
		
	private static final String INTESTAZIONE = "Inserisci i due numeri da sommare:";
	
	//finestra per l'interfaccia grafica
	private JFrame window = new JFrame("grafica.class");
	
	//Stampo l'intestazione
	private JTextArea intarea = new JTextArea(INTESTAZIONE, 2, 
		AREA_WIDTH);
		
	//Campo per l'inserimento del primo num
	private JLabel primoTag = new JLabel("  Primo numero");
	private JTextField primoText = new JTextField(FIELD_WIDTH);
	
	//Campo per l'inserimento del secondo numero
	private JLabel secondoTag = new JLabel("  Secondo numero");
	private JTextField secondoText = new JTextField(FIELD_WIDTH);
	 
	//Campo per il risultato
	private JLabel sommaTag = new JLabel("  Risultato");
	private JTextField sommaText = new JTextField(FIELD_WIDTH);
	
	//pulsante di esecuzione
	private JButton run = new JButton("Somma");
	
	public grafica(){
		//configura GUI
		window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		intarea.setEditable(false);
		intarea.setLineWrap(true);
		intarea.setWrapStyleWord(true);
		intarea.setBackground(window.getBackground());
		
		sommaText.setEditable(false);
		sommaText.setBackground(Color.WHITE);
		
		//Registra il rilevatore di eventi
		run.addActionListener(this);
		
		//aggiunge i componenti alla finestra
		Container c = window.getContentPane();
                     
		c.setLayout(LAYOUT_STYLE);	
		
		c.add(intarea);
		c.add(primoTag);
		c.add(primoText);
		c.add(secondoTag);
		c.add(secondoText);
		c.add(sommaTag);
		c.add(sommaText);
		c.add(run);
                             
		
		//visualizza GUI
		window.show();
		}
	//Gestore degli eventi
	public void actionPerformed(ActionEvent e){
		
		//recupera le risposte dell'utente
	  	String response1 = primoText.getText();
	  	double p = Double.parseDouble(response1);
	  	String response2 = secondoText.getText();
	  	double s = Double.parseDouble(response2);
	  	
	  	//visualizza somma
	  	double Doutput = p + s;
	  	String output = String.valueOf(Doutput);
	  	sommaText.setText(output);
		}
		
	//main, punto d'ingresso dell'applicazione
	  public static void main(String[] args) {
	  	grafica gui = new grafica();
	  }
}
Da notare che ho già settato il tipo di layout come SpringLayout nella costante "LAYOUT_STYLE". Il fatto è che non ho capito bene come funziona il posizionamento tramite west ecc ecc.. se potessi farmi qualche esempio.