How to set JRadioButtons vertically
java, jradiobutton, swing
Solution
You can use a `Box` set vetically
Box verticalBox = Box.createVerticalBox();
verticalBox.add(jRadioButtonA);
verticalBox.add(jRadioButtonB);
verticalBox.add(jRadioButtonC);
See this runnable example
import java.awt.GridLayout;
import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
public class MyPanel extends JPanel {
public MyPanel(){
JRadioButton jrb1 = new JRadioButton("Button 1");
JRadioButton jrb2 = new JRadioButton("Button 2");
JRadioButton jrb3 = new JRadioButton("Button 3");
Box box1 = Box.createVerticalBox();
box1.add(jrb1);
box1.add(jrb2);
box1.add(jrb3);
JRadioButton jrb4 = new JRadioButton("Button 4");
JRadioButton jrb5 = new JRadioButton("Button 5");
JRadioButton jrb6 = new JRadioButton("Button 6");
Box box2 = Box.createVerticalBox();
box2.add(jrb4);
box2.add(jrb5);
box2.add(jrb6);
JRadioButton jrb7 = new JRadioButton("Button 7");
JRadioButton jrb8 = new JRadioButton("Button 8");
JRadioButton jrb9 = new JRadioButton("Button 9");
Box box3 = Box.createVerticalBox();
box3.add(jrb7);
box3.add(jrb8);
box3.add(jrb9);
setLayout(new GridLayout(1, 3));
add(box1);
add(box2);
add(box3);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.add(new MyPanel());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.setSize(300, 300);
frame.setVisible(true);
}
});
}
}
Problem
i am working in java application that have many component but i have a problem with JRadioButton it's not in vertical way and is there any other way to make it vertical with out using JPanel and what is the best layout that i can use that make this code easier than that ``` package item; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * * @author isslam */ public class MyFrameMain extends JFrame{ Equipment newq = new Equipment(); private final JLabel ILabel; private final JLabel NLabel; private final JTextField IJTextField; private final JTextField NJTextField; private final JTextField SwTextField; private final JTextField HwTextField; private final JLabel JitemCounter; private final JTextArea resoulte; private final JButton addButton; private final JButton showButton; private final JButton copyButton; private final JButton exitButton; public MyFrameMain(String title){ //setSize(500,500); setTitle(title); setDefaultCloseOperation(MyFrameMain.EXIT_ON_CLOSE); IJTextField = new JTextField(); NJTextField = new JTextField(); SwTextField = new JTextField(); HwTextField = new JTextField(); NLabel = new JLabel("ID: "); ILabel = new JLabel("Name: "); JitemCounter = new JLabel(); resoulte = new JTextArea(); resoulte.setEditable(false); addButton = new JButton("Add an item into the Array"); showButton = new JButton("Show all items in the Array"); copyButton = new JButton("Copy Array into File"); exitButton = new JButton("Exite"); JRadioButton RButton1 = new JRadioButton("SW Version",false); JRadioButton RButton2 = new JRadioButton("HW Type",false); JRadioButton RButton3 = new JRadioButton("General",true); JPanel panel = new JPanel(); panel.add(RButton1); RButton1.setVerticalTextPosition(JPanel.BOTTOM); panel.add(RButton2); panel.add(RButton3); ButtonGroup BGroup = new ButtonGroup(); BGroup.add(RButton1); BGroup.add(RButton2); BGroup.add(RButton3); Container pane = getContentPane(); pane.setLayout(null); pane.add(panel); pane.add(ILabel); pane.add(NLabel); pane.add(addButton); pane.add(showButton); pane.add(copyButton); pane.add(exitButton); pane.add(IJTextField); pane.add(NJTextField); pane.add(SwTextField); pane.add(HwTextField); Insets insets = pane.getInsets(); setSize(500 + insets.left + insets.right,500 + insets.top + insets.bottom); Dimension size = ILabel.getPreferredSize(); ILabel.setBounds(0 + insets.left, 30 + insets.top,size.width, size.height); size = NLabel.getPreferredSize(); NLabel.setBounds(0 + insets.left, 5 + insets.top,size.width, size.height); size = addButton.getPreferredSize(); addButton.setBounds(0 + insets.left, 409 + insets.top,70+size.width, size.height); size = showButton.getPreferredSize(); showButton.setBounds(0 + insets.left, 435 + insets.top,65+size.width, size.height); size = copyButton.getPreferredSize(); copyButton.setBounds(250 + insets.left, 409 + insets.top,91+size.width, size.height); size = exitButton.getPreferredSize(); exitButton.setBounds(250 + insets.left, 435 + insets.top,171+size.width, size.height); size = IJTextField.getPreferredSize(); IJTextField.setBounds(250 + insets.left, 30 + insets.top,230+size.width, size.height); size = NJTextField.getPreferredSize(); NJTextField.setBounds(250 + insets.left, 5 + insets.top,230+size.width, size.height); size = panel.getPreferredSize(); panel.setBounds(0 + insets.left, 90 + insets.top,230+size.width, size.height); size = SwTextField.getPreferredSize(); SwTextField.setBounds(250 + insets.left, 55 + insets.top,230+size.width, size.height); size = HwTextField.getPreferredSize(); HwTextField.setBounds(250 + insets.left, 80 + insets.top,230+size.width, size.height); } } ```