如何让JFrame无法移动?

时间:2018-02-15 16:23:22

标签: java swing jframe jdialog jwindow

问题

我想知道是否有可能使JFrame不可移动/可拖动 - 只是出于好奇而不是真正的用例。问题是操作系统的窗口管理器负责窗口的外观,但程序本身只有几个可能的设置。这就是我正在寻找黑客的原因。

我尝试了什么

  • 删除JFrameComponentListener所述的JFrame的装饰(但是,仍然可以移动窗口,例如在GNU / Linux上按住ALT键)
  • 设置一个JFrame,如果JFrame被移动,它会重置位置(但是,这看起来很麻烦,因为听众只会在> 拖动之后做出反应,但是{{} 1}}应始终保持在同一位置)
  • 创建了一个全屏JPanel,使其透明并添加了JWindow来模拟一个窗口(但是,即使它已经最大化,仍然可以拖动窗口)
  • 使用JDialogvar BlogSchema = new mongoose.Schema({ title: { type: String, required: true, minlength: 1, trim: true }, content: { type: String, required: true, minlength: 1, trim: true }, _creator: { type: mongoose.Schema.Types.ObjectId, required: true }, _creatorUser: { type: String, required: true, minlength: 6 }, _createdAt: { type: Number, required: true, } }) var Blog = mongoose.model('Blog', BlogSchema) Blog.on('index', (err) => { if (err) { console.log(err) } }) module.exports = {Blog}; 代替(也不起作用)

有没有办法通过使用不同的方法或改进我的方法来实现所需的行为?

1 个答案:

答案 0 :(得分:0)

private void formComponentMoved(java.awt.event.ComponentEvent evt) {                                    
       this.setLocationRelativeTo(null);
    }     

addComponentListener(new java.awt.event.ComponentAdapter() {
                public void componentMoved(java.awt.event.ComponentEvent evt) {
                    formComponentMoved(evt);
                }
            });

适合我。