Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 481
  • Last Modified:

how to make application use getModified

I have an application that identifies which button on the mouse you clicked but I need to use the getModified method with an inputEvent object.
The actual question is : write an application that lets you determine the integer value returned by the inputEvent method getModifiers() when you click your left or right mouse button on a JFrame.
I don't know how to change the event code to accomplish this.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JLeftOrRight extends JFrame implements MouseListener
{
 final int MAX = 20;
 String message[] = new String[MAX];
 int msgCount = 0;
 final int STARTX = 10;
   final int STARTY = 20;
   int x, y;
 
 
 
 public JLeftOrRight()
   {
      setTitle("LeftOrRight");
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      addMouseListener(this);
   }
 public void mouseClicked(MouseEvent e)
   {
      	 int whichButton = e.getButton();
      String msg;
      if(msgCount == MAX)
        clearScreen();
      message[msgCount] = "You pressed the mouse.";
      if (whichButton == MouseEvent.BUTTON1)
        msg = "button 1.";
      else 
        msg = "button 2.";
      
      message[msgCount] = message[msgCount] +
         " You used " + msg;
	   ++msgCount;
      repaint();
 
		 
    			}
			
		 public void mouseEntered(MouseEvent e)
   {
      if(msgCount == MAX)
        clearScreen();
       message[msgCount] = "You entered the frame";
       ++msgCount;
       repaint();
   }
  public void mouseExited(MouseEvent e)
   {
             if(msgCount == MAX)
        clearScreen();
      message[msgCount] = "You exited the frame";
	 ++msgCount;
      repaint();
 
	}
	 public void mousePressed(MouseEvent e)
   {
   }
 
   public void mouseReleased(MouseEvent e)
   {
   }
	  public void paint(Graphics g)
   {
      super.paint(g);
final int STARTX = 10;
   final int STARTY = 20;
   int x, y;
      x = STARTX;
      y = STARTY;
      for(int a = 0; a < msgCount; ++a)
         g.drawString(message[a], x, y += 20);
   }
 
   public void clearScreen()
   {
      msgCount = 0;
      for(int a = 0; a < MAX; ++a)
         message[a] = " ";
      repaint();
   }
	
			
	 public static void main(String[] args)
   {
      JLeftOrRight mFrame = new JLeftOrRight();
      final int WIDTH = 750;
      final int HEIGHT = 500;
      mFrame.setSize(WIDTH, HEIGHT);
 
      mFrame.setVisible(true);
   }
}

Open in new window

0
mabcoleman
Asked:
mabcoleman
  • 3
  • 2
1 Solution
 
objectsCommented:
Why do you need to change it?
Questions seems to just asking you to display what it is

int modifier = event.getModifiers();

0
 
mabcolemanAuthor Commented:
I thought I was supposed to use that method instead of the code I have used to determine which button is used
0
 
objectsCommented:
perhaps it means something like this:

      if (whichButton == MouseEvent.BUTTON1)
        msg = "button 1. getModifier()="+modifier;
      else
        msg = "button 2. getModifier()="+modifier;

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
CEHJCommented:
Try the following to print your modifiers - note that a small number are synonyms (check constants):
import static java.awt.event.InputEvent.*;
 
 
public class EventPrinter {
 
    public static String eventToString(java.awt.event.InputEvent e) {
	final String NEWLINE = System.getProperty("line.separator");
	int mods = e.getModifiers();
	StringBuilder sb = new StringBuilder();
	for (int i = SHIFT_MASK; i <= ALT_GRAPH_DOWN_MASK; i <<= 1) {
	    if ((mods & i) == SHIFT_MASK) sb.append("SHIFT_MASK").append(NEWLINE);
	    if ((mods & i) == CTRL_MASK) sb.append("CTRL_MASK").append(NEWLINE);
	    if ((mods & i) == BUTTON3_MASK) sb.append("BUTTON3_MASK").append(NEWLINE);
	    if ((mods & i) == META_MASK) sb.append("META_MASK").append(NEWLINE);
	    if ((mods & i) == ALT_MASK) sb.append("ALT_MASK").append(NEWLINE);
	    if ((mods & i) == BUTTON2_MASK) sb.append("BUTTON2_MASK").append(NEWLINE);
	    if ((mods & i) == BUTTON1_MASK) sb.append("BUTTON1_MASK").append(NEWLINE);
	    if ((mods & i) == ALT_GRAPH_MASK) sb.append("ALT_GRAPH_MASK").append(NEWLINE);
	    if ((mods & i) == SHIFT_DOWN_MASK) sb.append("SHIFT_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == CTRL_DOWN_MASK) sb.append("CTRL_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == META_DOWN_MASK) sb.append("META_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == ALT_DOWN_MASK) sb.append("ALT_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == BUTTON1_DOWN_MASK) sb.append("BUTTON1_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == BUTTON2_DOWN_MASK) sb.append("BUTTON2_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == BUTTON3_DOWN_MASK) sb.append("BUTTON3_DOWN_MASK").append(NEWLINE);
	    if ((mods & i) == ALT_GRAPH_DOWN_MASK) sb.append("ALT_GRAPH_DOWN_MASK").append(NEWLINE);
	}
	return sb.toString().trim();
    }
}

Open in new window

0
 
CEHJCommented:
mabcoleman, as a point of procedure, you should normally simply accept comments as answers rather than closing the question. That's normally done when you're not awarding point
0
 
CEHJCommented:
Oh - i think you did now - perhaps you made an adjustment? :-)
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now