如何设置可见以隐藏设置为可见的jDialog(内部条件)(如果循环外)?

时间:2017-12-25 12:11:24

标签: java swing visibility jdialog

我希望在DialogFrame未激活时打开包含错误消息的buttonGroup&单击搜索按钮。因此,在ActionEvent中,我将DialogFrame设为setVisible(true)。但是当按钮组处于活动状态时我点击搜索按钮(在if条件内),setVisible(false)似乎无效,换句话说DialogFrame仍然弹出!

如何在DialogFrame条件下关闭if的可见度?

private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {                                              

    SrchEMsg sem = new SrchEMsg(this);
    sem.setVisible(true);
    sem.setLocationRelativeTo(null);
    sem.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);


    if (bgGroup.getSelection() != null) {
        sem.setVisible(false); //doesn't work.
        SrchResult sr = new SrchResult();
        sr.setVisible(true);
        sr.pack();
        sr.setLocationRelativeTo(null);
        sr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.dispose();
    }
}                                             

2 个答案:

答案 0 :(得分:0)

我建议不要操纵可见性,但如果满足某些条件,则根本不要创建{em> {em>

sem

答案 1 :(得分:0)

保持简单。摆脱

sem.setVisible(true);

而只是做

sem.setVisible(bgGroup.getSelection() == null);

仅在需要时才将其设为可见

如果您希望在用户进行选择时将对话框设置为不可见,则您无法在对话框创建代码中执行此操作,而是需要响应相应的事件,例如添加到JRadioButtons的ActionListener或ItemListener。