Solved

CURSOR DOESN'T CHANGE !!!

Posted on 2001-09-07
3
189 Views
Last Modified: 2012-06-27
Hello friends,
 
I have deleted the previous question having the same problem , but the code seemed to be very long so I am presenting a smaller version of the code here
the following program produces a frame containing three panels in a row.The left and the right panel contains a slot while the middle panel is left empty.
when the mouse is dragged in a slot , the slot display message "Dragged"; for clicking it displays "Clicked me" and for releasing , it displays "Released me".
the problem lies here :
When the mouse-drag originates from the middle panel(REMEMBER THAT THE MIDDLE PANNEL IS EMPTY) and continued in the left/right panels (WHICH CONTAINS THE SLOTS), the slots doesn't give the appropriate messages , BUT if the mouse-drag is originated from any of the slots and continued in the remaining slots, the slots gives the appropriate messages.  WHY ?????????
Please Help !!!


import java.awt.*;
import java.awt.event.*;


class Slot1 extends Canvas implements MouseMotionListener{
     
     class SlotMouseAdapter extends MouseAdapter {
        public void mouseClicked(MouseEvent evt)
        {
            Graphics g = getGraphics();
            g.setColor(Color.black);
            g.drawString("Clicked me",10,20);
        }
        public void mouseReleased(MouseEvent evt)
        {
            Graphics g = getGraphics();
            g.setColor(Color.black);
            g.drawString("Released me",10,40);
        }
    }
    Slot1()
    {

        // Add the listeners to the Slot
        addMouseListener(new SlotMouseAdapter());
        addMouseMotionListener(this);          
    }
   public void paint(Graphics g)
      {
          // just draws rectangle in the slot
          int x1 = 0;
          int y1 = 0;
          int x2 = getSize().width - 1;
          int y2 = getSize().height - 1;
          g.drawRect(x1, y1, x2, y2);
      }
   public void mouseDragged(MouseEvent evt)
    {
        Graphics g = getGraphics();
        Cursor cursor = new Cursor(Cursor.HAND_CURSOR);
        setCursor(cursor);
        g.setColor(Color.black);
        g.drawString("Dragged ",10,60);
    }    
    public void mouseMoved(MouseEvent evt) { }
   
}

public class Brainvita1 extends Frame {
   
    Panel panelLeft     = new Panel();
    Panel panelMiddle   = new Panel();
    Panel panelRight    = new Panel();
    class MyFrameWindowListener extends WindowAdapter {
        public void windowClosing(WindowEvent evt)
        {
         System.exit(0);  
        }
    }
   
   
    Brainvita1()
    {
        setLayout(new GridLayout(1,3));
        // Add a Slot to all the Panels
        add(panelLeft);
        panelLeft.setLayout(new GridLayout(1,1));
        panelLeft.add(new Slot1());
        add(panelMiddle);
        panelMiddle.setLayout(new GridLayout(1,1));
        //panelMiddle.add(new Slot1()); //MIDDLE PANEL LEFT EMPTY
        add(panelRight);
        panelRight.setLayout(new GridLayout(1,1));
        panelRight.add(new Slot1());
       

        // add the listener
        addWindowListener(new MyFrameWindowListener());

    }
   
    public static void main(String[] args)
    {
        Brainvita1 brain = new Brainvita1();
        brain.setSize(400,400);
        brain.setVisible(true);
    }
 }
0
Comment
Question by:babashri
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 92

Accepted Solution

by:
objects earned 150 total points
ID: 6465871
There's no mouse listener added to the middle panel, so there will be no notification of mouse events on it.
0
 
LVL 20

Expert Comment

by:Venabili
ID: 8908507
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

- Points for objects

Please leave any comments here within the next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

Venabili
EE Cleanup Volunteer
0

Featured Post

Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
ejb on wildfly 5 61
How to configure empty element in XML Document parser? 15 57
Strange router problem - can't access hotmail.com 14 107
using executorService 3 18
By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
Suggested Courses

737 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question