我已经四处寻找了一段时间,但找不到禁用拖动 JIntenal Frame 的方法。任何帮助将不胜感激-TYIA,罗兰
请记住这是一个小程序,
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);
}
}
你可以删除所有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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)