如何在 Java中使内部框架不能移动,以便它不能移动并保持固定在某个位置?
我正在使用NetBeans.

解决方法

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.basic.*;

public class InternalFrameUnMovable2 extends JFrame
{
    JDesktopPane desktop;

    public InternalFrameUnMovable2()
    {
        desktop = new JDesktopPane();
        desktop.setDesktopManager( new NoDragDesktopManager() );
        getContentPane().add( desktop );

        desktop.add( createInternalFrame(1,Color.RED) );
        desktop.add( createInternalFrame(2,Color.GREEN) );
        desktop.add( createInternalFrame(3,Color.BLUE) );
    }

    private JInternalFrame createInternalFrame(int number,Color background)
    {
        JInternalFrame internal =
            new JInternalFrame( "Frame" + number,true,true );
        internal.setBackground( background );
        internal.setVisible( true );
        int location = 50 * number;
        internal.setBounds(location,location,300,300);
        return internal;
    }

    public static void main(String args[])
    {
        InternalFrameUnMovable2 frame = new InternalFrameUnMovable2();
        frame.setDefaultCloSEOperation( EXIT_ON_CLOSE );
        frame.setSize(600,600);
        frame.setLocationRelativeto( null );
        frame.setVisible(true);

        //  Activate first internal frame

        try
        {
            JInternalFrame[] frames = frame.desktop.getAllFrames();
            frames[0].setSelected(true);
        }
        catch (java.beans.PropertyVetoException e) {}

        //  Make first internal frame unmovable

        JInternalFrame[] frames = frame.desktop.getAllFrames();
        JInternalFrame f = frames[0];
        f.putClientProperty("dragMode","fixed");
    }

    class NoDragDesktopManager extends DefaultDesktopManager
    {
        public void beginDraggingFrame(JComponent f)
        {
            if (!"fixed".equals(f.getClientProperty("dragMode")))
                super.beginDraggingFrame(f);
        }

        public void dragFrame(JComponent f,int newX,int newY)
        {
            if (!"fixed".equals(f.getClientProperty("dragMode")))
                super.dragFrame(f,newX,newY);
        }

        public void endDraggingFrame(JComponent f)
        {
            if (!"fixed".equals(f.getClientProperty("dragMode")))
                super.endDraggingFrame(f);
        }
    }
}

java – 使JInternalFrame不动的更多相关文章

  1. Html5移动端适配IphoneX等机型的方法

    这篇文章主要介绍了Html5移动端适配IphoneX等机型的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. ios – 如何存档包含自定义框架的应用程序?

    我有一个我创建的xcode框架项目,我可以编译成一个myframework.framework文件.编译之后,我将这个框架拖到我应用程序的Frameworks项目文件夹中,然后利用框架中的类,将适当的import语句添加到需要它的任何类;这允许我的应用程序成功编译与在框架中定义的类的引用.要使应用程序成功部署到我的设备,我还将我的自定义框架添加到我的目标的“嵌入式二进制文件”部分.有了这一切,我可

  3. Swift3.0语言教程使用路径字符串

    Swift3.0语言教程使用路径字符串Swift3.0语言教程使用路径字符串,路径其实是字符串的一种,我们称为路径字符串。importFoundationletcomponents:[String]=["Users","mac","Desktop","File.txt"]letpath=Nsstring.path//组合路径print运行结果如下:Users/mac/Desktop/File.txt2.分割路径在Nsstring中有组合路径相对的就有分割路径,使用pathComponents属性就可以实现

  4. Swift:如何在路径String中扩展波形符

    如何在Swift中使用波浪号扩展路径String?,Tilde-basedPathsinObjective-C)Tilde扩张斯威夫特1斯威夫特2斯威夫特3主页目录另外,您可以像这样获取主目录(返回String/String?):在Swift3和OSX10.12中,也可以使用它(返回URL/URL?

  5. 无法在android中包含iostream为什么?

    安装了android-ndk-r7,并尝试编译.cpp文件.执行以下命令:进入jni文件夹,然后执行得到以下错误:我究竟做错了什么?我的Android.mk文件如下所示:和Application.mk文件看起来像:请指出错误?

  6. Html5导航栏吸顶方案原理与对比实现

    这篇文章主要介绍了Html5导航栏吸顶方案原理与对比实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  7. Html5移动端div固定到底部实现底部导航条的几种方式

    这篇文章主要介绍了Html5移动端div固定到底部实现底部导航条的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  8. vue实现移动端弹出键盘功能(防止页面fixed布局错乱)

    这篇文章主要介绍了vue 解决移动端弹出键盘导致页面fixed布局错乱的问题,通过实例代码给大家分享解决方案,对vue 移动端弹出键盘相关知识感兴趣的朋友一起看看吧

  9. 简介JavaScript中fixed()方法的使用

    这篇文章主要介绍了JavaScript中fixed()方法的使用,是JS入门学习中的基础知识,需要的朋友可以参考下

  10. 在Windows 7上安装C#Windows服务

    有没有新的方法在Windows7中安装服务?右键单击批处理文件并以管理员身份运行它.您最有可能与WindowsVista和Windows7中的新安全模型发生争执.即使您作为具有管理员权限的帐户运行,您仍需要提升以执行某些(大多数)管理活动.>UAC>UAC>InstallUtil编辑…

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部