Dies ist ja nicht ganz ohne LayoutManager, FlowLayout ist schließlich auch einer. 
Ganz ohne gehts natürlich auch (Layout auf null setzen), aber ist nicht unbedingt empfehlenswert.
BorderLayout ist schon in Ordnung, solange du im Center eben ein anderes Layout verwendest. Mit dem BoxLayout könntest du den Norden auch gut gestalten.
Zum Abschluss auch mal der Vergleich zwischen deiner momentanen Version und dann mit eingeschobenem FlowLayout:
[code=Java]import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class BorderLayoutTest {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final JFrame frame = new JFrame();
final JPanel north = new JPanel(new BorderLayout());
north.add(new JButton("GO!"), BorderLayout.CENTER);
north.add(new JLabel("Player1"), BorderLayout.WEST);
north.add(new JLabel("Player2"), BorderLayout.EAST);
frame.add(north, BorderLayout.NORTH);
frame.add(new JButton("west"), BorderLayout.WEST);
frame.add(new JButton("south"), BorderLayout.SOUTH);
frame.add(new JButton("east"), BorderLayout.EAST);
frame.add(new JButton("center"), BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}[/code]
[code=Java]import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class FlowLayoutTest {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final JFrame frame = new JFrame();
final JPanel north = new JPanel(new BorderLayout());
final JPanel northCenter = new JPanel(); // implizit FlowLayout, oder explizit: new JPanel(new FlowLayout())
northCenter.add(new JButton("GO!"));
north.add(northCenter, BorderLayout.CENTER);
north.add(new JLabel("Player1"), BorderLayout.WEST);
north.add(new JLabel("Player2"), BorderLayout.EAST);
frame.add(north, BorderLayout.NORTH);
frame.add(new JButton("west"), BorderLayout.WEST);
frame.add(new JButton("south"), BorderLayout.SOUTH);
frame.add(new JButton("east"), BorderLayout.EAST);
frame.add(new JButton("center"), BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
[/code]