この記事では、特定のSwing Jtextarea Scrollbarとテキストスケーリングのコードを参照して共有しています。特定のコンテンツは次のとおりです
Ctrl+ホイールのスケーリングなどのスクロールイベントを備えたスクロールバーを備えたJTextareaが追加されると、Scrollイベントとスクロールズームイベントが追加されます。これらの2つのイベントを互いに干渉することなく同時に発生させる方法は?つまり、スクロールバーが拡大して縮小されたときに、テキストは上下にスクロールしません。
javax.swing。*; java.awt。*; java.awt.event.mouseadapterをインポートします。 java.awt.event.mousewheeleventをインポートします。 java.awt.event.mousewheellistenerをインポートします。パブリッククラスjtawheel {jframe jf; jtextarea jta; jscrollpane jsp; MouseWheellistener syswheel; public jtawheel(){jf = new JFrame( "Scroll Scaling"); 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]; //システムスクロールイベントjsp.RemoveMouseWheellistener(syswheel); //システムスクロールを削除し、jsp.addmousewheellistener(new Event()); jf.add(jsp); jf.setDefaultCloseoperation(jframe.exit_on_close); jf.setVisible(true); }プライベートクラスイベントはMouseadapterを拡張します{@Override public void mousewheelmoved(mousewheelevent e){if(e.iscontroldown()){// ctrlキーが押されている場合、スクロールはフォントf = jta.getfont(); if(e.getWheelRotation()<0){//スクロールバーが前方にある場合、テキストJTA.setFont(new Font(f.getFamily()、f.getStyle()、f.getSize()+1)を拡大します; } else if(e.getWheelRotation()> 0){//スクロールバーはテキストを後方に縮小しますjta.setfont(new font(f.getFamily()、f.getStyle()、f.getSize() - 1); }} else {// ctrlが押されない場合、システムjsp.addmousewheellistener(syswheel)をスクロールします。 syswheel.mousewheelmoved(e); //システムスクロールイベントをトリガーします。 jsp.RemoveMouseWheellistener(Syswheel); }} public static void main(string [] args){new jtawheel(); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。