!7 import javax.swing.plaf.LayerUI; static class ZoomUI extends LayerUI { double zoom = 1.5; public void paint(Graphics g, JComponent c) { Graphics2D g2 = (Graphics2D) g.create(); g2.scale(zoom, zoom); super.paint(g2, c); g2.dispose(); } public void installUI(JComponent c) { super.installUI(c); JLayer jlayer = (JLayer)c; jlayer.setLayerEventMask( AWTEvent.MOUSE_EVENT_MASK | AWTEvent.ACTION_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK ); } @Override public void uninstallUI(JComponent c) { JLayer jlayer = (JLayer)c; jlayer.setLayerEventMask(0); super.uninstallUI(c); } protected void processMouseEvent(MouseEvent e, JLayer l) { /*l.getView().dispatchEvent(new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), iround(e.getX()/zoom), iround(e.getY()/zoom), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton())); e.consume();*/ } protected void processMouseMotionEvent(MouseEvent e, JLayer l) { processMouseEvent(e, l); } } p-substance { LayerUI layerUI = new ZoomUI; JPanel panel = createPanel(); JLayer jlayer = new JLayer(panel, layerUI); centerFrame(setFrameSize(showFrame(jlayer), 300, 200)); } static JPanel createPanel() { JPanel p = new JPanel(); ButtonGroup entreeGroup = new ButtonGroup(); JRadioButton radioButton; p.add(radioButton = new JRadioButton("Beef", true)); entreeGroup.add(radioButton); p.add(radioButton = new JRadioButton("Chicken")); entreeGroup.add(radioButton); p.add(radioButton = new JRadioButton("Vegetable")); entreeGroup.add(radioButton); p.add(new JCheckBox("Ketchup")); p.add(new JCheckBox("Mustard")); p.add(new JCheckBox("Pickles")); p.add(new JLabel("Special requests:")); p.add(new JTextField(20)); JButton orderButton = new JButton("Place Order"); p.add(orderButton); return p; }