Zooming a JLabel by overriding paintComponent ()

test234

New Member
Consider this small runnable example:\[code\]import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener;import java.util.ArrayList;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Test2 extends JFrame implements MouseWheelListener{ ArrayList<JLabel> lista = new ArrayList<JLabel>(); JPanel p; double d = 0.1; Test2(){ p=new JPanel(); _JLabel j = new _JLabel("Hello"); j.setOpaque(true); j.setBackground(Color.yellow); p.add(j); p.setBackground(Color.blue); add(p); this.setVisible(true); this.setSize(400,400); addMouseWheelListener(this); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String args[]){ new Test2(); } private class _JLabel extends JLabel{ _JLabel(String s){ super(s); } protected void paintComponent(Graphics g) { d+=0.01; Graphics2D g2d = (Graphics2D) g; g2d.scale(d, d); setMaximumSize(null); setPreferredSize(null); setMinimumSize(null); super.paintComponent(g2d); System.out.println("d= " +d); } } public void mouseWheelMoved(MouseWheelEvent e) { this.repaint(); }}\[/code\]When I scroll the mousewheel the JLabel increases in size and the variable d is printed out. However, when it reaches the actual size (d=1) only the text continues zooming. How can I make the background continue to zoom?
 
Top