试图禁用JInternalFrame的拖动 [英] Trying to disable dragging of a JInternalFrame

查看:149
本文介绍了试图禁用JInternalFrame的拖动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在寻找了一段时间,并不能找到禁用拖动JIntenal帧的方法。任何帮助将是AP preciaed -TYIA,罗兰

请记住这是一个小程序,

 进口java.awt中的*。
导入的java.applet。*;
java.awt.event中导入*。
进口的javax.swing *。
公共类inigui2扩展的Applet {    公共无效的init(){        最终的JDesktopPane桌面=新的JDesktopPane();
        desktop.set preferredSize(新尺寸(640,480));
        this.add(桌面);        JInternalFrame的FR =新的JInternalFrame(内部,假的,假的,假的,假的);
        fr.setBounds(0,0,640,480);
        desktop.add(FR);
        fr.setVisible(真);        JInternalFrame的FR2 =新的JInternalFrame(internal2,真的,真的,真的,真的);
        fr2.setBounds(50,50,300,200);
        desktop.add(FR2);
        fr2.setVisible(真);    }
}


解决方案

您可以删除所有 MouseMotionListeners JInternalFrames

 的JInternalFrame [] =帧desktop.getAllFrames();
对于(JInternalFrame的框架:帧){
   BasicInternalFrameUI UI =(BasicInternalFrameUI)frame.getUI();
   组分northPane = ui.getNorthPane();
   的MouseMotionListener [] = motionListeners(的MouseMotionListener [])northPane.getListeners(MouseMotionListener.class);   对于(的MouseMotionListener监听器:motionListeners)
      northPane.removeMouseMotionListener(监听);
   }
}

I have been looking around for awhile and can't find a method for disabling dragging a JIntenal Frame. Any help would be appreciaed -TYIA, Roland

Please keep in mind this is an applet,

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;


public class inigui2 extends Applet {

    public void init() {

        final JDesktopPane desktop = new JDesktopPane();
        desktop.setPreferredSize(new Dimension(640, 480));
        this.add(desktop);

        JInternalFrame fr = new JInternalFrame("internal", false, false, false, false);
        fr.setBounds(0, 0, 640, 480);
        desktop.add(fr);
        fr.setVisible(true);

        JInternalFrame fr2 = new JInternalFrame("internal2", true, true, true, true);
        fr2.setBounds(50, 50, 300, 200);
        desktop.add(fr2);
        fr2.setVisible(true);

    }
}

解决方案

You could remove all MouseMotionListeners for JInternalFrames:

JInternalFrame[] frames = desktop.getAllFrames();
for (JInternalFrame frame: frames) {
   BasicInternalFrameUI ui = (BasicInternalFrameUI) frame.getUI();
   Component northPane = ui.getNorthPane();
   MouseMotionListener[] motionListeners = (MouseMotionListener[]) northPane.getListeners(MouseMotionListener.class);

   for (MouseMotionListener listener: motionListeners)
      northPane.removeMouseMotionListener(listener);
   }
}

这篇关于试图禁用JInternalFrame的拖动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆