sbo*_*031 18 java user-interface swing zoom jpanel
我有一个现有的Java Swing申请.在应用程序的中间是JPanel我想要的单个zoom in and out.它上面JPanel有许多JComponents(主要是其他JPanels和JLabels).
此外mouse职位将需要进行适当调整,以及-所以mouseevents需要保持相同的偶数后JPanel已被放大.因此,简单地改变paint每种方法component似乎都不合理.
编辑:

好吧,我有点使用MagnifierUI class一些小编辑工作.然而,我创建的放大面板有错误mouseevents- 即面板是缩放的,mouseevents不是.
这只是一个问题:
JPanel跟踪表示比例因子的AffineTransform(见AffineTransform.scale(double,double),paint你的方法JPanel:在调用之前通过调用super.paint将仿射变换应用于你的Graphics2D对象(从paint方法的参数中强制转换)Graphics2D.setTransform(AffineTransform),super.paint然后调用processMouseEvent,processMouseMotionEvent并将processMouseWheelEvent仿射变换应用于其鼠标事件参数(AffineTransform.transform(java.awt.geom.Point2D,java.awt.geom.Point2D))的坐标,super然后调用相应的-method.希望这可以帮助.