// Musexempel3.java import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; class Muspanel extends JPanel { public Muspanel() { super(new FlowLayout()); JPanel dumpanel1 = new JPanel(); dumpanel1.setBackground(new Color(0.98f, 0.97f, 0.85f)); Dimension size = new Dimension(100, 100); dumpanel1.setPreferredSize(size); dumpanel1.setMinimumSize(size); dumpanel1.setBorder(new LineBorder(Color.red, 2)); add(dumpanel1); BlankArea dumpanel2 = new BlankArea(); add(dumpanel2); JTextArea textarea = new JTextArea(); textarea.setEditable(false); JScrollPane scrollPane = new JScrollPane(textarea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setPreferredSize(new Dimension(300, 75)); add(scrollPane); Muslyssnare lyssnare = new Muslyssnare(textarea); dumpanel1.addMouseListener(lyssnare); dumpanel2.addMouseListener(lyssnare); setPreferredSize(new Dimension(400, 200)); } // Muspanel private class Muslyssnare extends MouseAdapter implements MouseListener { private JTextArea textarea; public Muslyssnare(JTextArea textarea) { this.textarea = textarea; } public void mouseClicked(MouseEvent e) { log("Musklick; antal klick = " + e.getClickCount() + ")", e); } private void log(String eventDescription, MouseEvent e) { textarea.append(eventDescription + " (" + e.getX() + "," + e.getY() + ")" + " på " + e.getComponent().getClass().getName() + "\n"); textarea.setCaretPosition(textarea.getDocument().getLength()); } } // class Muslyssnare } // class Muspanel class Musfönster extends JFrame { public Musfönster() { super("Musfönster"); getContentPane().add(new Muspanel()); pack(); } } // class Musfönster public class Musexempel3 { public static void main(String[] args) { Musfönster m = new Musfönster(); m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); m.setVisible(true); } } // class Musexempel3