只有一个活跃的新jframe

时间:2011-02-07 04:45:48

标签: java swing user-interface jframe

我有两种形式:f_mainf_recruitment。我在f_main中添加了一个带有此代码的标签:

....
private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) {                                     
    JOptionPane.showMessageDialog (null, "Recruitment Icon has been Clicked");
    new F_Recruitment().setVisible(true);
}                                    
 // to display f_recruitment

问题是我如何只有一个活跃f_recruitment开放?

更新

谢谢,我的意思是,如何阻止用户重新点击jLabel2而另一个f_recruitment已打开..? (我让f_main表单保持可见,而新表单f_recruitment已打开)

2 个答案:

答案 0 :(得分:2)

我完全赞同使用glowcoder(1+),更多的信息对于有效地回答这个问题很有帮助,但另一个选择是使用延迟启动 - 创建一个空的F_Recruitment变量字段,并实例化它在侦听器中,如果它为null,但无论它是否最初为null,在侦听器的底部显示该字段。

public class MyClass {

  private F_Recruitment fRecruitment = null;

  // ... more code goes here

  private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) {
    JOptionPane.showMessageDialog (null, "Recruitment Icon has been Clicked"); 
    if (fRecruitment == null) {
      fRecruitment = new F_Recruitment();
    }
    fRecruitment.setVsible(true);
  }

答案 1 :(得分:1)

我真的不认为这里有足够的信息来回答你的问题。

你说你只想要一个活跃的f_recruitment,但这意味着不止一个f_recruitment。

您可以考虑使用切换方法:

private void toggleRecruitmentOn() {
    f_main.setVisible(false);
    f_recruitment.setVisible(true);
}

private void toggleMainOn() {
    f_recruitment.setVisible(false);
    f_main.setVisible(true);
}

如果有关于手头问题的更多信息发布,我会更新此信息:)