1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
package lib.test;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.AffineTransform;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ZoomPanelTest extends JPanel
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Zoom Panel");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
ZoomPanelTest chart = new ZoomPanelTest();
frame.setContentPane(chart);
frame.setSize(new Dimension(600, 600));
frame.setVisible(true);
}
public ZoomPanelTest()
{
super();
this.setLayout(new FlowLayout());
init();
}
private void init()
{
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension (100, 100));
panel.setSize(new Dimension (100, 100));
panel.setLocation(10, 10);
panel.setBackground(Color.RED);
panel.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
System.out.println("position: "+e.getPoint());
}
});
this.add(panel);
}
protected void paintChildren(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
AffineTransform old= g2.getTransform();
double zoom = 0.5;
AffineTransform tr = AffineTransform.getScaleInstance(zoom,zoom);
g2.setTransform(tr);
super.paintChildren(g);
g2.setTransform(old);
}
} |
Partager