Java让JFrame“留下来”

时间:2012-03-14 19:24:04

标签: java jframe

有没有办法让Java应用程序的框架保持在我使用.setLocation显示的位置?我想禁用它在用户屏幕上移动的能力。

4 个答案:

答案 0 :(得分:3)

您可以创建一个守护程序线程来检查框架是否已移动,是否将其放回原位?

答案 1 :(得分:3)

以下是阻止JFrame移动的方法。在生产应用程序中使用它不是一个好主意,因为当用户尝试最小化/最大化帧时,它会惹恼用户并导致其他错误。

public static void main(String args[]) throws Exception {
class JFrameTypeLocking extends JFrame {
    Point locked=null;
    public JFrameTypeLocking(String string) {
        super(string);
        super.addComponentListener(new ComponentAdapter(){
            public void componentMoved(ComponentEvent e) {
                if (locked!=null) JFrameTypeLocking.this.setLocation(locked);
            }});
    }
    public void lockLocation() {
        locked=super.getLocation();
    }
}
JFrameTypeLocking f = new JFrameTypeLocking("");
f.setSize(300,300);
f.setLocation(300,300);
f.setVisible(true);
f.lockLocation();
}

答案 2 :(得分:2)

你不能禁止'禁止'被移动的JFrame。它是系统GUI的一部分;您可以做的最好的事情是将一个ComponentListener添加到JFrame中,并在移动时将其放回原来的位置。

我认为这样做时视觉效果非常有趣。

答案 3 :(得分:0)

这有点像黑客,但你可以全屏显示。无法移动全屏应用。