Este artículo comparte el código específico de Swing JTexTarea Scrollbar y Escala de texto para su referencia. El contenido específico es el siguiente
Cuando se agrega el JTexTarea con una barra de desplazamiento con un evento de desplazamiento como Escalar Ctrl+Wheel, el evento de desplazamiento adicional y el evento de zoom de desplazamiento coincidirán. ¿Cómo hacer que estos dos eventos ocurran simultáneamente sin interferir entre sí? Es decir, el texto no se desplazará hacia arriba y hacia abajo cuando la barra de desplazamiento se agreda y se reduzca.
import javax.swing.*; import java.awt.*; import java.awt.event.mouseadapter; import java.awt.event.mousewheelevent; import java.awt.event.mousewheellistener; clase pública jtawheel {jframe jf; JTextarea JTA; JScrollPane JSP; MouseWheListener Syswheel; public JTawheel () {jf = new Jframe ("Escalado de desplazamiento"); JF.SetBounds (500,500,600,400); JTA = new JTextArea (); jsp = new JScrollPane (JTA, JSCrollPane.vertical_ScrollBar_As_Needed, JScrollPane.Horizontal_ScrollBar_As_Needed); syswheel = jsp.getMouseWheellisteners () [0]; // get System Scroll Event jsp.removemousewheellistener (syswheel); // eliminar desplazamiento del sistema, agregar jsp.addmousewheellistener (nuevo evento ()); JF.Add (JSP); jf.setDefaultCloseOperation (jframe.exit_on_close); JF.SetVisible (verdadero); } Evento de clase privada extiende Mouseadapter {@Override public void MouseWheelMoved (MouseWheelEvent e) {if (e.isControldown ()) {// Cuando se presiona la tecla CTRL, el desplazamiento es ampliar y salir font f = jta.getFont (); if (e.getwheelrotation () <0) {// Si la barra de desplazamiento está hacia adelante, amplíe el texto JTA.SetFont (nuevo Font (f.getFamily (), f.getStyle (), f.getSize ()+1)); } else if (e.getwheelrotation ()> 0) {// La barra de desplazamiento encoge el texto hacia atrás jta.setFont (nueva fuente (f.getfamily (), f.getStyle (), f.getSize ()-1)); }} else {// Cuando Ctrl no está presionado, se desplaza para el sistema jsp.addmousewheellistener (syswheel); syswheel.MouseWheelMoved (e); // desencadena el evento de desplazamiento del sistema. jsp.removemousewheellistener (Syswheel); }} public static void main (string [] args) {new JTawheel (); }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.