【问题标题】:Radio buttons do not display as expected单选按钮未按预期显示
【发布时间】:2020-01-09 02:08:57
【问题描述】:

每当我运行此代码时,单选按钮都会正确显示,直到我进入窗口或将鼠标悬停在窗口中,然后它只显示一个单选,而我可以看到其他单选的唯一方法是将鼠标悬停在它们上方。

为什么直到我将鼠标悬停在窗口或选项卡上才显示单选按钮?

    JRadioButton rDollar1 = new JRadioButton("Dollars");
    JRadioButton rCDollar1 = new JRadioButton("Canadian Dollars");
    JRadioButton rMPesos1 = new JRadioButton("Mexican Pesos");
    JRadioButton rCPesos1 = new JRadioButton("Colombian Pesos");


    ButtonGroup bg1 = new ButtonGroup();
    bg1.add(rDollar1);
    bg1.add(rCDollar1);
    bg1.add(rMPesos1);
    bg1.add(rCPesos1);

    frame1.setSize(500, 500);
    frame1.setVisible(true);
    frame1.add(rDollar1);
    frame1.add(rCDollar1);
    frame1.add(rMPesos1);
    frame1.add(rCPesos1);
    rDollar1.setBounds(10, 50, 50, 20);
    rDollar1.setVisible(true);
    rCDollar1.setBounds(10, 100, 50, 20);
    rCDollar1.setVisible(true);
    rMPesos1.setBounds(10, 150, 50, 20);
    rMPesos1.setVisible(true);
    rCPesos1.setBounds(10, 200, 50, 20);
    rCPesos1.setVisible(true);

【问题讨论】:

标签: java swing jradiobutton


【解决方案1】:

每当我运行此代码时,单选按钮都会正确显示,直到我进入或悬停在窗口中

这是因为当您“进入”或将鼠标悬停在单选按钮上时,您会触发对负责绘制 GUI 的 repaint() 的调用。

在这种情况下,奇怪的行为是由于你有这行:

frame1.setVisible(true);

在您将所有其他组件添加到 JFrame 之前。但这只是您的问题的开始,因为您最终会发现其他错误,例如您的 GUI 没有在其他一些不是您用来制作程序的计算机上正确绘制,这是因为对 @987654328 的调用@ 表示您使用的是null-layout,其中is evilfrowned uppon。而是学习如何使用和混合不同的layout managers,否则你会遇到类似于this one的情况

【讨论】:

    猜你喜欢
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多