Java by API/java.awt.event/InputEvent

Материал из Java эксперт
Перейти к: навигация, поиск

InputEvent.BUTTON1_MASK (mouse left button)

   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Button Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JButton button = new JButton("Select Me");
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       System.out.println("I was selected.");
     }
   };
   MouseListener mouseListener = new MouseAdapter() {
     public void mousePressed(MouseEvent mouseEvent) {
       int modifiers = mouseEvent.getModifiers();
       if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {
         System.out.println("Left button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {
         System.out.println("Middle button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
         System.out.println("Right button pressed.");
       }
     }
     public void mouseReleased(MouseEvent mouseEvent) {
       if (SwingUtilities.isLeftMouseButton(mouseEvent)) {
         System.out.println("Left button released.");
       }
       if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {
         System.out.println("Middle button released.");
       }
       if (SwingUtilities.isRightMouseButton(mouseEvent)) {
         System.out.println("Right button released.");
       }
       System.out.println();
     }
   };
   button.addActionListener(actionListener);
   button.addMouseListener(mouseListener);
   frame.add(button, BorderLayout.SOUTH);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



InputEvent.BUTTON2_MASK (mouse middle button)

   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Button Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JButton button = new JButton("Select Me");
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       System.out.println("I was selected.");
     }
   };
   MouseListener mouseListener = new MouseAdapter() {
     public void mousePressed(MouseEvent mouseEvent) {
       int modifiers = mouseEvent.getModifiers();
       if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {
         System.out.println("Left button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {
         System.out.println("Middle button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
         System.out.println("Right button pressed.");
       }
     }
     public void mouseReleased(MouseEvent mouseEvent) {
       if (SwingUtilities.isLeftMouseButton(mouseEvent)) {
         System.out.println("Left button released.");
       }
       if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {
         System.out.println("Middle button released.");
       }
       if (SwingUtilities.isRightMouseButton(mouseEvent)) {
         System.out.println("Right button released.");
       }
       System.out.println();
     }
   };
   button.addActionListener(actionListener);
   button.addMouseListener(mouseListener);
   frame.add(button, BorderLayout.SOUTH);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



InputEvent.BUTTON3_MASK (mouse right button)

   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Button Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JButton button = new JButton("Select Me");
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       System.out.println("I was selected.");
     }
   };
   MouseListener mouseListener = new MouseAdapter() {
     public void mousePressed(MouseEvent mouseEvent) {
       int modifiers = mouseEvent.getModifiers();
       if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {
         System.out.println("Left button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {
         System.out.println("Middle button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
         System.out.println("Right button pressed.");
       }
     }
     public void mouseReleased(MouseEvent mouseEvent) {
       if (SwingUtilities.isLeftMouseButton(mouseEvent)) {
         System.out.println("Left button released.");
       }
       if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {
         System.out.println("Middle button released.");
       }
       if (SwingUtilities.isRightMouseButton(mouseEvent)) {
         System.out.println("Right button released.");
       }
       System.out.println();
     }
   };
   button.addActionListener(actionListener);
   button.addMouseListener(mouseListener);
   frame.add(button, BorderLayout.SOUTH);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



InputEvent.CTRL_MASK

   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.util.Hashtable; import javax.swing.Action; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.KeyStroke; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultEditorKit; import javax.swing.text.Document; import javax.swing.text.JTextComponent; import javax.swing.text.Keymap; import javax.swing.text.TextAction; import javax.swing.text.Utilities; public class Main {

 public static void main(String[] args) {
   JTextArea area = new JTextArea(6, 32);
   Keymap parent = area.getKeymap();
   Keymap newmap = JTextComponent.addKeymap("KeymapExampleMap", parent);
   KeyStroke u = KeyStroke.getKeyStroke(KeyEvent.VK_U,
       InputEvent.CTRL_MASK);
   Action actionU = new UpWord();
   newmap.addActionForKeyStroke(u, actionU);
   Action actionList[] = area.getActions();
   Hashtable lookup = new Hashtable();
   for (int j = 0; j < actionList.length; j += 1)
     lookup.put(actionList[j].getValue(Action.NAME), actionList[j]);
   KeyStroke L = KeyStroke.getKeyStroke(KeyEvent.VK_L,
       InputEvent.CTRL_MASK);
   Action actionL = (Action) lookup.get(DefaultEditorKit.selectLineAction);
   newmap.addActionForKeyStroke(L, actionL);
   KeyStroke W = KeyStroke.getKeyStroke(KeyEvent.VK_W,
       InputEvent.CTRL_MASK);
   Action actionW = (Action) lookup.get(DefaultEditorKit.selectWordAction);
   newmap.addActionForKeyStroke(W, actionW);
   area.setKeymap(newmap);
   JFrame f = new JFrame("KeymapExample");
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.getContentPane().add(new JScrollPane(area), BorderLayout.CENTER);
   area.setText("This is a test.");
   f.pack();
   f.setVisible(true);
 }

} class UpWord extends TextAction {

 public UpWord() {
   super("uppercase-word-action");
 }
 public void actionPerformed(ActionEvent e) {
   JTextComponent comp = getTextComponent(e);
   if (comp == null)
     return;
   Document doc = comp.getDocument();
   int start = comp.getSelectionStart();
   int end = comp.getSelectionEnd();
   try {
     int left = Utilities.getWordStart(comp, start);
     int right = Utilities.getWordEnd(comp, end);
     String word = doc.getText(left, right - left);
     doc.remove(left, right - left);
     doc.insertString(left, word.toUpperCase(), null);
     comp.setSelectionStart(start);
      comp.setSelectionEnd(end);
   } catch (BadLocationException ble) {
     return;
   }
 }

}

 </source>
   
  
 
  



InputEvent: getModifiersExText(int modifiers)

   <source lang="java">

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/*

* KeyEventDemo
*/

import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class Main extends JFrame implements KeyListener, ActionListener {

 JTextArea displayArea;
 JTextField typingArea;
 static final String newline = System.getProperty("line.separator");
 public static void main(String[] args) {
   // Create and set up the window.
   Main frame = new Main();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   // Set up the content pane.
   frame.addComponentsToPane();
   // Display the window.
   frame.pack();
   frame.setVisible(true);
 }
 private void addComponentsToPane() {
   JButton button = new JButton("Clear");
   button.addActionListener(this);
   typingArea = new JTextField(20);
   typingArea.addKeyListener(this);
   // Uncomment this if you wish to turn off focus
   // traversal. The focus subsystem consumes
   // focus traversal keys, such as Tab and Shift Tab.
   // If you uncomment the following line of code, this
   // disables focus traversal and the Tab events will
   // become available to the key event listener.
   // typingArea.setFocusTraversalKeysEnabled(false);
   displayArea = new JTextArea();
   displayArea.setEditable(false);
   JScrollPane scrollPane = new JScrollPane(displayArea);
   scrollPane.setPreferredSize(new Dimension(375, 125));
   getContentPane().add(typingArea, BorderLayout.PAGE_START);
   getContentPane().add(scrollPane, BorderLayout.CENTER);
   getContentPane().add(button, BorderLayout.PAGE_END);
 }
 /** Handle the key typed event from the text field. */
 public void keyTyped(KeyEvent e) {
   displayInfo(e, "KEY TYPED: ");
 }
 /** Handle the key pressed event from the text field. */
 public void keyPressed(KeyEvent e) {
   displayInfo(e, "KEY PRESSED: ");
 }
 /** Handle the key released event from the text field. */
 public void keyReleased(KeyEvent e) {
   displayInfo(e, "KEY RELEASED: ");
 }
 /** Handle the button click. */
 public void actionPerformed(ActionEvent e) {
   // Clear the text components.
   displayArea.setText("");
   typingArea.setText("");
   // Return the focus to the typing area.
   typingArea.requestFocusInWindow();
 }
 /*
  * We have to jump through some hoops to avoid trying to print non-printing
  * characters such as Shift. (Not only do they not print, but if you put them
  * in a String, the characters afterward won"t show up in the text area.)
  */
 private void displayInfo(KeyEvent e, String keyStatus) {
   // You should only rely on the key char if the event
   // is a key typed event.
   int id = e.getID();
   String keyString;
   if (id == KeyEvent.KEY_TYPED) {
     char c = e.getKeyChar();
     keyString = "key character = "" + c + """;
   } else {
     int keyCode = e.getKeyCode();
     keyString = "key code = " + keyCode + " (" + KeyEvent.getKeyText(keyCode)
         + ")";
   }
   int modifiersEx = e.getModifiersEx();
   String modString = "extended modifiers = " + modifiersEx;
   String tmpString = KeyEvent.getModifiersExText(modifiersEx);
   if (tmpString.length() > 0) {
     modString += " (" + tmpString + ")";
   } else {
     modString += " (no extended modifiers)";
   }
   String actionString = "action key? ";
   if (e.isActionKey()) {
     actionString += "YES";
   } else {
     actionString += "NO";
   }
   String locationString = "key location: ";
   int location = e.getKeyLocation();
   if (location == KeyEvent.KEY_LOCATION_STANDARD) {
     locationString += "standard";
   } else if (location == KeyEvent.KEY_LOCATION_LEFT) {
     locationString += "left";
   } else if (location == KeyEvent.KEY_LOCATION_RIGHT) {
     locationString += "right";
   } else if (location == KeyEvent.KEY_LOCATION_NUMPAD) {
     locationString += "numpad";
   } else { // (location == KeyEvent.KEY_LOCATION_UNKNOWN)
     locationString += "unknown";
   }
   displayArea.append(keyStatus + newline + "    " + keyString + newline
       + "    " + modString + newline + "    " + actionString + newline
       + "    " + locationString + newline);
   displayArea.setCaretPosition(displayArea.getDocument().getLength());
 }

}

 </source>