2012-12-09 2 views
1

Я искал некоторое время и не могу найти способ отключения перетаскивания JIntenal Frame. Любая помощь будет appreciaed -TYIA, РоландПопытка отключить перетаскивание JInternalFrame

Пожалуйста, имейте в виду, что это апплет,

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); 

    } 
} 
+0

Вы найдете [этот учебник] (http://www.java-forums.org/new-java/9214-disable-drag-mode-jinternal-frame.html) полезно. – Vulcan

ответ

4

Вы можете удалить все MouseMotionListeners для 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); 
    } 
} 
+0

это здорово! Мне нужно только freese один кадр, но TYVM - Roland –

Смежные вопросы