Java JOptionPane有几行

Java JOptionPane有几行,java,joptionpane,Java,Joptionpane,在我的代码中,所有内容都显示在一行中。我想要一列中的按钮1,按钮2,按钮3,按钮4,另一列中的标签1和2 有人能帮我吗?我认为javax.swing.ButtongGroup可以完成这项工作,但当我在互联网上搜索示例时,我发现只有复杂的代码 import java.awt.Color; import java.awt.Container; import java.awt.EventQueue; import java.awt.FlowLayout; imp

在我的代码中,所有内容都显示在一行中。我想要一列中的按钮1,按钮2,按钮3,按钮4,另一列中的标签1和2

有人能帮我吗?我认为javax.swing.ButtongGroup可以完成这项工作,但当我在互联网上搜索示例时,我发现只有复杂的代码

    import java.awt.Color;
    import java.awt.Container;
    import java.awt.EventQueue;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.Timer;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;

    public class RadioButtonV3 extends JFrame{

        private static final long serialVersionUID = 1L;

        public static void main(String[] args)
        {
            new RadioButtonV3();
        }

        public RadioButtonV3() 
        {
            EventQueue.invokeLater
            (
                new Runnable() 
                {
                    @Override
                    public void run() {
                        try 
                        {
                            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                        } 
                        catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) 
                        {

                        }


                        Container c = getContentPane();     
                        c.setLayout(new FlowLayout());

                        final JPanel panel = new JPanel();
                        final JRadioButton button1 = new JRadioButton("option 1");
                        final JRadioButton button2 = new JRadioButton("option 2");
                        final JRadioButton button3 = new JRadioButton("option 3");
                        final JRadioButton button4 = new JRadioButton("option 4");

                        String s = "this text will be deleted in -> public void actionPerformed(ActionEvent e)";

                        JLabel label1 = new JLabel(s, JLabel.CENTER);
                        JLabel label2 = new JLabel(s, JLabel.CENTER);
                        label1.setFont(new Font("DigifaceWide Regular", Font.PLAIN, 20));
                        label2.setFont(new Font("DigifaceWide Regular", Font.PLAIN, 20));

                        Timer t = new Timer
                        (
                            500, new ActionListener() 
                            {
                                @Override
                                public void actionPerformed(ActionEvent e) 
                                {


                                    Double rand = Math.random();
                                    label1.setText(rand.toString());
                                    if (rand < 0.3) {
                                        label1.setForeground(Color.RED);
                                    }
                                    else if (rand < 0.6) {
                                        label1.setForeground(Color.GRAY);
                                    }
                                    else {
                                        label1.setForeground(Color.GREEN);
                                    }

                                    rand = Math.random();
                                    label2.setText(rand.toString());
                                    if (rand < 0.3) {
                                        label2.setForeground(Color.RED);
                                    }
                                    else if (rand < 0.6) {
                                        label2.setForeground(Color.GRAY);
                                    }
                                    else {
                                        label2.setForeground(Color.GREEN);
                                    }



                                }
                            }
                        );
                        t.setRepeats(true);
                        t.start();






                        panel.add(button1);
                        panel.add(button2);
                        panel.add(button3);
                        panel.add(button4);
                        panel.add(label1);
                        panel.add(label2);

                        JOptionPane.showMessageDialog(null, panel, "title", JOptionPane.INFORMATION_MESSAGE);

                        t.stop();
                    }
                }
            );
        }
    }
导入java.awt.Color;
导入java.awt.Container;
导入java.awt.EventQueue;
导入java.awt.FlowLayout;
导入java.awt.Font;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JPanel;
导入javax.swing.JRadioButton;
导入javax.swing.Timer;
导入javax.swing.UIManager;
导入javax.swing.UnsupportedLookAndFeelException;
公共类RadioButtonV3扩展JFrame{
私有静态最终长serialVersionUID=1L;
公共静态void main(字符串[]args)
{
新RadioButtonV3();
}
公共电台按钮nv3()
{
EventQueue.invokeLater
(
新的Runnable()
{
@凌驾
公开募捐{
尝试
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} 
catch(ClassNotFoundException |实例化Exception | IllegalacessException |不支持ookandfeelException ex)
{
}
容器c=getContentPane();
c、 setLayout(新的FlowLayout());
最终JPanel面板=新JPanel();
最终JRadioButton按钮1=新JRadioButton(“选项1”);
最终JRadioButton按钮2=新JRadioButton(“选项2”);
最终JRadioButton按钮3=新JRadioButton(“选项3”);
最终JRadioButton按钮4=新JRadioButton(“选项4”);
String s=“此文本将在->public void actionPerformed(ActionEvent e)”中删除;
JLabel label1=新的JLabel(s,JLabel.CENTER);
JLabel label2=新的JLabel(s,JLabel.CENTER);
label1.setFont(新字体(“DigifaceWide常规”,Font.PLAIN,20));
label2.setFont(新字体(“DigifaceWide常规”,Font.PLAIN,20));
定时器t=新定时器
(
500,新的ActionListener()
{
@凌驾
已执行的公共无效操作(操作事件e)
{
Double rand=Math.random();
标签1.setText(rand.toString());
如果(兰特<0.3){
标签1.设置前景(颜色:红色);
}
否则如果(兰特<0.6){
标签1.设置前景(颜色:灰色);
}
否则{
标签1.设置前景(颜色为绿色);
}
rand=Math.random();
label2.setText(rand.toString());
如果(兰特<0.3){
标签2.设置前景(颜色:红色);
}
否则如果(兰特<0.6){
标签2.设置前景(颜色:灰色);
}
否则{
标签2.设置前景(颜色为绿色);
}
}
}
);
t、 设置重复(真);
t、 start();
面板。添加(按钮1);
面板。添加(按钮2);
面板。添加(按钮3);
面板。添加(按钮4);
面板。添加(标签1);
面板。添加(标签2);
showMessageDialog(null,面板,“标题”,JOptionPane.INFORMATION\u消息);
t、 停止();
}
}
);
}
}
试试这个

更改代码

Container c = getContentPane();     
  c.setLayout(new FlowLayout());

  final JPanel panel = new JPanel();
  panel.setLayout(new GridLayout(2,1));
  final JPanel panel1 = new JPanel();
  final JPanel panel2 = new JPanel();
  panel.add(panel1);
  panel.add(panel2);
最后呢,

  panel1.add(button1);
  panel1.add(button2);
  panel1.add(button3);
  panel1.add(button4);
  panel2.add(label1);
  panel2.add(label2);
试试这个

更改代码

Container c = getContentPane();     
  c.setLayout(new FlowLayout());

  final JPanel panel = new JPanel();
  panel.setLayout(new GridLayout(2,1));
  final JPanel panel1 = new JPanel();
  final JPanel panel2 = new JPanel();
  panel.add(panel1);
  panel.add(panel2);
最后呢,

  panel1.add(button1);
  panel1.add(button2);
  panel1.add(button3);
  panel1.add(button4);
  panel2.add(label1);
  panel2.add(label2);