Forum Stats

  • 3,750,837 Users
  • 2,250,259 Discussions
  • 7,867,172 Comments

Discussions

Lock JInternalPane

843804
843804 Member Posts: 45,751
edited Mar 22, 2005 4:53PM in Swing
I have a JInternalPane that I want to fix in place or lock in place.
Is there a function or way I can force it to be immovable by the user - fixed in place?
cheers
David

Comments

  • camickr
    camickr Member Posts: 24,931
    I assume you mean JInternalFrame?

    Remove the MouseListener from the JInternalFrame:
    JInternalFrame f = frames[0];
    BasicInternalFrameUI ui = (BasicInternalFrameUI)f.getUI();
    Component north = ui.getNorthPane();
    MouseMotionListener[] actions = (MouseMotionListener[])north.getListeners(MouseMotionListener.class);
    for (int i = 0; i < actions.length; i++)
    	north.removeMouseMotionListener( actions[i] );
  • 843804
    843804 Member Posts: 45,751
    I assume you mean JInternalFrame?

    Remove the MouseListener from the JInternalFrame:
    JInternalFrame f = frames[0];
    BasicInternalFrameUI ui =
    (BasicInternalFrameUI)f.getUI();
    Component north = ui.getNorthPane();
    MouseMotionListener[] actions =
    (MouseMotionListener[])north.getListeners(MouseMotionL
    istener.class);
    for (int i = 0; i < actions.length; i++)
    	north.removeMouseMotionListener( actions[i] );
    Yup, sorry jinternalframe is what I meant.

    Ok that does lock it which is great, the only problem now, is when I click on the internal frame - it initially disappears (you can still find it on the toolbar on the bottom) - but it doesn't remain as the active window (when clicked on) - (I'm putting it inside a JWindow if that affects anything?)
    cheers for the help.
  • camickr
    camickr Member Posts: 24,931
    JInternalFrame should be added to JDesktopPane.

    How to Use Internal Frames:

    http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html

    If you mean your adding the JDesktopPane to a JWindow, then I don't know what the problem might be I've never tried that.
  • 843804
    843804 Member Posts: 45,751
    I've tried putting it in a desktop pane like the following:
    jInternalFrame2.setBounds(0, 0, 600, 500);
    jDeskTest.setBounds(0,0,600,500);
    jWindowTest.setBounds(200,120,600,500);
    
    jDeskTest.add(jInternalFrame2);
    jWindowTest.getContentPane().add(jDeskTest);
    
    BasicInternalFrameUI ui = (BasicInternalFrameUI)jInternalFrame2.getUI();
    Component north = ui.getNorthPane();
    MouseMotionListener[] actions=(MouseMotionListener[])north.getListeners(MouseMotionListener.class);
    for (int i = 0; i < actions.length; i++)
    	north.removeMouseMotionListener( actions[i] );
    
    jWindowTest.setVisible(true);
    jDeskTest.setVisible(true);
    I add all my components to the internalframe, then add it to the desktoppane and then add that to the windowframe...its still giving me the problem I mentioned above...
  • camickr
    camickr Member Posts: 24,931
    I've never seen that behaviour and am not even going to try to guess whats wrong based on the lines of code you posted. If you post a 15 - 20 line demo program the illustrates your behaviour then I might take a look at it.
  • 843804
    843804 Member Posts: 45,751
    Well, I'd have to post the whole project, because its going to be hard to emulate my problem in around 15-20 lines of code.
    I'll play more, and see if other people have further thoughts or solutions...
    cheers
  • camickr
    camickr Member Posts: 24,931
    Well, I'd have to post the whole project, because its going to be hard to emulate my problem in around 15-20 lines of code.
    Thats the point. You may or may not be able to emulate the problem.

    If you do emulate the problem then you have code to post on the forum.

    If you don't emulate the problem then you've proven to yourself that a very simple application works normally. Now the next step is to compare this code with your existing code to see whats different. If you can't see whats different I don't know how you expect use to "guess" what your code looks like.
This discussion has been closed.