栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过JLayer和LayerUI缩放JLayeredPane

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过JLayer和LayerUI缩放JLayeredPane

您的直接问题是,您正在混合重量级/ AWT组件和重量轻/ Swing组件…

Button
是本地组件,这意味着它的绘画超出了Swing的控制范围,因此不受其影响。

而是使用

JButton
代替。

public class TestJLayerZoom {    public static void main(String args[]) {        EventQueue.invokeLater(new Runnable() { @Override public void run() {     Jframe frame = new Jframe();     frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);     final JPanel panel = new JPanel();     final ZoomUI layerUI = new ZoomUI();     final JLayer<JComponent> jLayer = new JLayer<JComponent>(panel, layerUI);     JButton zoomIn = new JButton("Zoom In");     zoomIn.addActionListener(new ActionListener() {         public void actionPerformed(ActionEvent e) {  layerUI.zoom += 0.1;  jLayer.repaint();         }     });     panel.add(zoomIn);     JButton zoomOut = new JButton("Zoom Out");     zoomOut.addActionListener(new ActionListener() {         public void actionPerformed(ActionEvent e) {  layerUI.zoom -= 0.1;  jLayer.repaint();         }     });     panel.add(zoomOut);     frame.setPreferredSize(new Dimension(400, 200));     frame.add(jLayer);     frame.pack();     frame.setVisible(true); }        });    }    private static class ZoomUI extends LayerUI<JComponent> {        public double zoom = 2; // Changing this value seems to have no effect        @Override        public void paint(Graphics g, JComponent c) { Graphics2D g2 = (Graphics2D) g.create(); g2.scale(zoom, zoom); super.paint(g2, c); g2.dispose();        }        @Override        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);        }    }}

您的下一个问题将是研究如何转换鼠标事件;)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507259.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号