File "mouse_demo.java"

Full Path: /home/analogde/www/Ebook/Informatique/JAVA/Source_TLS/Sketcher/src/mouse_demo.java
File size: 3.86 KB
MIME-type: text/x-c
Charset: utf-8


import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class mouse_demo extends JPanel implements MouseListener {

	
	BlankArea blankArea;

	  JTextArea textArea;

	
	
	final static String newline = "\n";

	  public mouse_demo() {
	    super(new GridBagLayout());
	    GridBagLayout gridbag = (GridBagLayout) getLayout();
	    GridBagConstraints c = new GridBagConstraints();

	    c.fill = GridBagConstraints.BOTH;
	    c.gridwidth = GridBagConstraints.REMAINDER;
	    c.weightx = 1.0;
	    c.weighty = 1.0;

	    c.insets = new Insets(1, 1, 1, 1);
	    blankArea = new BlankArea(new Color(0.98f, 0.97f, 0.85f));
	    gridbag.setConstraints(blankArea, c);
	    add(blankArea);

	    c.insets = new Insets(0, 0, 0, 0);
	    textArea = new JTextArea();
	    textArea.setEditable(false);
	    JScrollPane scrollPane = new JScrollPane(textArea);
	    scrollPane
	        .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
	    scrollPane.setPreferredSize(new Dimension(200, 75));
	    gridbag.setConstraints(scrollPane, c);
	    add(scrollPane);

	    //Register for mouse events on blankArea and the panel.
	    blankArea.addMouseListener(this);
	    addMouseListener(this);

	    setPreferredSize(new Dimension(450, 450));
	    setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
	  }

	  public void mousePressed(MouseEvent e) {
	    saySomething("Mouse pressed (# of clicks: " + e.getClickCount() + ")",
	        e);
	  }

	  public void mouseReleased(MouseEvent e) {
	    saySomething("Mouse released (# of clicks: " + e.getClickCount() + ")",
	        e);
	  }

	  public void mouseEntered(MouseEvent e) {
	    saySomething("Mouse entered", e);
	  }

	  public void mouseExited(MouseEvent e) {
	    saySomething("Mouse exited", e);
	  }

	  public void mouseClicked(MouseEvent e) {
	    saySomething("Mouse clicked (# of clicks: " + e.getClickCount() + ")",
	        e);
	  }

	  void saySomething(String eventDescription, MouseEvent e) {
	    textArea.append(eventDescription + " detected on "
	        + e.getComponent().getClass().getName() + "." + newline);
	    textArea.setCaretPosition(textArea.getDocument().getLength());
	  }

	  /**
	   * Create the GUI and show it. For thread safety, this method should be
	   * invoked from the event-dispatching thread.
	   */
	  private static void createAndShowGUI() {
	    //Make sure we have nice window decorations.
	    JFrame.setDefaultLookAndFeelDecorated(true);

	    //Create and set up the window.
	    JFrame frame = new JFrame("MouseEventDemo");
	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	    //Create and set up the content pane.
	    JComponent newContentPane = new mouse_demo();
	    newContentPane.setOpaque(true); //content panes must be opaque
	    frame.setContentPane(newContentPane);

	    //Display the window.
	    frame.pack();
	    frame.setVisible(true);
	  }

	  public static void main(String[] args) {
	    //Schedule a job for the event-dispatching thread:
	    //creating and showing this application's GUI.
	    javax.swing.SwingUtilities.invokeLater(new Runnable() {
	      public void run() {
	        createAndShowGUI();
	      }
	    });
	  }
	}

	class BlankArea extends JLabel {
	  Dimension minSize = new Dimension(100, 100);

	  public BlankArea(Color color) {
	    setBackground(color);
	    setOpaque(true);
	    setBorder(BorderFactory.createLineBorder(Color.black));
	  }

	  public Dimension getMinimumSize() {
	    return minSize;
	  }

	  public Dimension getPreferredSize() {
	    return minSize;
	  }
	}