1

大家好,我正在尝试制作一个新软件,它可以为我提供任何数字的模数。我想要的是我在我的 gui 上放了一个 JCheckBox,当它被检查时,窗口应该是

setAlwaysOnTop(true); 

以及取消选择时

setAlwaysOnTop(false);

我的一些代码是

boolean top = false;

    Check = new JCheckBox("Always on top");
    Check.setLocation(140, 105);
    Check.setSize(150, 20);
    Check.setSelected(top);
    Check.addItemListener(new CheckBoxListener());

    add(Check);
    setAlwaysOnTop(top);

    private class CheckBoxListener implements ItemListener{
        public void itemStateChanged(ItemEvent e){
            if(e.getSource()==Check){ 
                if(Check.isSelected()){
                    top = true;
                }else{
                    top = false;
                }
            }
        }
    }
4

2 回答 2

2

setAlwaysOnTop不会观察到您的进一步状态更改boolean top.它在传递时采用 top 的

在你的听众中,写下:

if(e.getSource() == Check) {
  setAlwaysOnTop(Check.isSelected());
}
于 2012-12-06T18:52:18.433 回答
0

改变:

public void itemStateChanged(ItemEvent e){
    if(e.getSource()==Check){ 
        if(Check.isSelected()){
            top = true;
        }else{
            top = false;
        }
    }
}

public void itemStateChanged(ItemEvent e){
    if(e.getSource()==Check){ 
        setAlwaysOnTop(Check.isSelected());
        }
    }
}

(另外,查看LayoutManagerJava 中的各种 s;不要制作具有固定定位的 GUI。)

于 2012-12-06T18:57:27.060 回答