Vi ringrazio per le risposte.

@francesco.muia: mi piace quest'approccio perché così facendo separo completamente le classi dal metodo main, sia le importazioni che le dichiarazioni di base. Però hai ragione, a parte il frame sulle altre classi è inutile.

@valia: non so cosa sia l'EDT... comunque ho migliorato un po' la classe Frame, gli daresti un'occhiata?

Classe Frame
codice:
import javax.swing.JFrame;
import java.awt.Dimension;

public class Frame extends JFrame
{
	private Dimension minSize = new Dimension(200, 200);

	public Frame()
	{
		setTitle("Frame senza nome");
		setMinimumSize(minSize);
		pack();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}	
	public Frame(String title, int frameWidth, int frameHeight)
	{
		setTitle(title);
		pack();
		setSize(frameWidth,frameHeight);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}	
	public Frame(String title, int frameWidth, int frameHeight, int frameXPos, int frameYPos)
	{
		setTitle(title);
		pack();
		setBounds(frameXPos,frameYPos,frameWidth,frameHeight);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
Classe Main
codice:
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Main
{
	public static void main(String[] args)
	{
		Frame frame = new Frame();
		JButton button = new JButton("Click me!");
		JLabel label = new JLabel("This is a label.");
		JPanel panel = new JPanel();
		panel.add(button);
		panel.add(label);
		frame.add(panel);
		frame.setVisible(true);		
	}
}
Sto preparando un piccolo framework per lavori futuri... cos'altro si potrebbe aggiungere come base di partenza? Grazie di nuovo a entrambi