Zoom de un JLabel anulando paintComponent ()

Considere este pequeño ejemplo ejecutable:

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();
    }

}

Cuando desplazo la rueda del mouse, JLabel aumenta de tamaño y se imprime la variable d. Sin embargo, cuando alcanza el tamaño real (d = 1) solo el texto continúa haciendo zoom . ¿Cómo puedo hacer que el fondo continúe acercándose?

Respuesta 1

JTable y JXTables tienen una celda de encabezado que se genera sobre la barra de desplazamiento. Es una celda pequeña pero me gustaría usarla para representar un ícono y un menú emergente. ¿Cómo puedo acceder a esta celda de encabezado? ...

Cómo cargar Struts2 MessageResources.properties en otra clase sin acción. Básicamente, el requisito es que tengo un Servlet de planificador Quartz y una clase de trabajo dentro de una aplicación web struts2. Quiero ...

Tengo una aplicación Spring-boot maven que he estado ejecutando localmente como: mvn spring-boot: run Quiero poder ejecutar esto en GitLab runner para que cuando presione el código para dominar, automáticamente ...

En mi proyecto que estoy usando tanto Hibernate como Jersey, hay un conflicto de biblioteca con Hibernate, Jersey. Desde el siguiente enlace me aparece este http: //www.hildeberto.com/2008/05/hibernate-and-jersey -...