This is my layout.
The two radio button should be below the welcome label.
like this:
__________________________
| |
| WELCOME |
| * * |
| |
| |
| |
|________________________|
the two asterisk are the radio buttons.
My Code:
northpanel.setLayout(new FlowLayout(FlowLayout.CENTER));
northpanel1.setLayout(new FlowLayout(FlowLayout.CENTER));
northpanel.add(welcome); //this welcome text label
northpanel1.add(r1); //this radio 1
northpanel1.add(r2); //this radio 2
add(northpanel,BorderLayout.NORTH);
add(northpanel1,BorderLayout.NORTH);
A flow layout arranges components in a directional flow, much like lines of text in a paragraph. The flow direction is determined by the container's componentOrientation property and may be one of two values: ComponentOrientation. LEFT_TO_RIGHT. ComponentOrientation.
The Java FlowLayout class is used to arrange the components in a line, one after another (in a flow). It is the default layout of the applet or panel.
A flow layout arranges components in a left-to-right flow, much like lines of text in a paragraph. Flow layouts are typically used to arrange buttons in a panel. It will arrange buttons left to right until no more buttons fit on the same line. Each line is centered.
FlowLayout is a simple layout manager that tries to arrange components at their preferred sizes, from left to right and top to bottom in the container. A FlowLayout can have a specified row justification of LEFT , CENTER , or RIGHT and a fixed horizontal and vertical padding.
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
public class StackOverflow14837740
{
public static void main (String[] args)
{
SwingUtilities.invokeLater (new Runnable ()
{
@Override
public void run ()
{
createAndShowGUI ();
}
});
}
private static void createAndShowGUI ()
{
JFrame frame = new JFrame ();
frame.setLayout (new BorderLayout ());
frame.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
JPanel northPanel = new JPanel (new GridLayout (2, 1));
JPanel welcomePanel = new JPanel (new FlowLayout (FlowLayout.CENTER));
welcomePanel.add (new JLabel ("Welcome"));
northPanel.add (welcomePanel);
JPanel radioPanel = new JPanel (new FlowLayout (FlowLayout.CENTER));
JRadioButton button1 = new JRadioButton ("Button 1", true);
JRadioButton button2 = new JRadioButton ("Button 2", false);
ButtonGroup group = new ButtonGroup ();
group.add (button1);
group.add (button2);
radioPanel.add (button1);
radioPanel.add (button2);
northPanel.add (radioPanel);
JPanel middlePanel = new JPanel (new GridLayout (3, 3));
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
middlePanel.add (new JButton ("Button " + i + j));
}
}
JPanel southPanel = new JPanel (new FlowLayout (FlowLayout.CENTER));
southPanel.add (new JLabel ("Whose turn:"));
southPanel.add (new JButton ("Reset"));
frame.add (northPanel, BorderLayout.NORTH);
frame.add (middlePanel, BorderLayout.CENTER);
frame.add (southPanel, BorderLayout.SOUTH);
frame.pack ();
frame.setVisible (true);
}
}
It looks like this (although you have to resize it a bit):
Add northpanel
and northpanel
to a panel
having GridLayout(0, 1)
then
add(panel, BorderLayout.NORTH);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With