0

我正在使用 swing 库学习 java GUI。我知道如何制作JFrame和添加JButton、添加ActionListener等,但今天JFrame没有显示。我像往常一样做所有事情。请查看我的代码并建议我在哪里做错了..

import javax.swing.*;
import java.awt.*;
import java.util.concurrent.TimeUnit;

public class MyGroup extends JFrame {

    private ButtonGroup myGroup = new ButtonGroup();

    public MyGroup(){
        setSize(500, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLayout(new FlowLayout());

        JRadioButton b1 = new JRadioButton("check1");
        JRadioButton b2 = new JRadioButton("check2");
        JRadioButton b3 = new JRadioButton("check3");
        JRadioButton b4 = new JRadioButton("check4");

        add(b1);
        add(b2);
        add(b3);
        add(b4);

        myGroup.add(b1);
        myGroup.add(b2);
        myGroup.add(b3);
        myGroup.add(b4);

        setVisible(true);

    }

   public static void main(String[] args) throws Exception{
        ButtonGroup m = new ButtonGroup();
    }
}
4

3 回答 3

3

您正在ButtonGroupmain 方法中创建一个新的,而不是一个新的MyGroup. 我可以想象,由于后者执行您的构造函数并使您的框架可见,这就是您的错误所在!

于 2013-07-23T10:35:39.363 回答
2

您在 main 方法中做了一个简单的错字。不要调用ButtonGroup myGroup,而是考虑将其更改为调用对象MyGroup,如下所示:

     public static void main(String[] args) throws Exception{

       MyGroup group = new MyGroup();

   }
于 2013-07-23T10:38:12.577 回答
0

您需要将您的添加ButtonGroup myGroup到您的框架中。

//your code
getContentPane().add(myGroup);
setVisible(true);

同样在您的主要方法中,您需要创建 JFrame 对象而不是 ButtonGroup。

MyGroup myFrame = new MyGroup();
于 2013-07-23T10:49:38.310 回答