java - how to change Jslider value and pass to paintComponent? -


i developing application in brightness of image change per user change value of jslider. jslider display on window image not loaded , don't know how pass value of jslider paintcomponent() method.

my code :

public class neo_2010_slider1 extends jframe {     private static final long serialversionuid = 1l;      private container container ;     private jslider slider1 ;      private jlabel lbl1 ;      private jpanel panel1 ;      private jtextfield txt1 ;     public neo_2010_slider1() {         super("slider");         setalwaysontop(true);         setdefaultcloseoperation(jframe.exit_on_close);         setbackground(new color(14555));         setsize(new dimension(400,400));         setresizable(true);          container = getcontentpane();         borderlayout containerlayout = new borderlayout();         container.setlayout(containerlayout);          lbl1 = new jlabel("slider 1");           /****************** textfield properties ********************************/         txt1 = new jtextfield(4);            slider1 = new jslider(jslider.horizontal,0,1000,0);//direction , min , max , current         slider1.setfont(new font("tahoma",font.bold,12));         slider1.setmajortickspacing(100);         slider1.setminortickspacing(25);         slider1.setpaintlabels(true);         slider1.setpaintticks(true);         slider1.setpainttrack(true);         slider1.setautoscrolls(true);         slider1.setpreferredsize(new dimension(500,500));          slider1.addchangelistener(new changelistener() {             @override             public void statechanged(changeevent e) {                 txt1.settext(string.valueof(slider1.getvalue()));                 repaint();              }         });         txt1.addactionlistener(new actionlistener() {                 @override             public void actionperformed(actionevent e) {                 try                 {                     slider1.setvalue(integer.parseint(txt1.gettext()));                 }                 catch(exception ex)                 {                     txt1.settext("error");                     txt1.settooltiptext("set value in range between 0 - 1000 ") ;                 }             }         });         this.addfocuslistener(new focuslistener() {             @override             public void focuslost(focusevent e){             }              @override             public void focusgained(focusevent e) {                 txt1.settext(string.valueof(slider1.getvalue()));                                }         });          panel1 = new jpanel();         container.add(panel1, borderlayout.west);         panel1.add(lbl1);         panel1.add(txt1);         panel1.add(slider1);          setvisible(true);     }             public void paintcomponent(graphics g){       graphics2d g2d=(graphics2d)g;       try{           bufferedimage src=imageio.read(new file("src.jpg"));            bufferedimage dest=changebrightness(src,0.5f);            g2d.drawimage(dest,0,0,this);            imageio.write(dest,"jpeg",new file("dest.jpg"));       }catch(exception e){             e.printstacktrace();       }    }      public bufferedimage changebrightness(bufferedimage src,float val){        rescaleop brighterop = new rescaleop(val, 0, null);        return brighterop.filter(src,null); //filtering    }      public static void main(string args[])     {         new neo_2010_slider1();     } } 

i don't know pass paintcomponent method.. if knows please guide me.

i'm not sure how gain, jframe doesn't have paintcomponent method, never called.

what do, instead is

  • load source image can , store in variable (masterimage example)
  • use jlabel show image
  • use javax.swing.timer short delay (so 125 milliseconds) set won't repeat. each time jslider's statechanged event raised, restart timer.

when timer triggers, update "master" image's brightness , apply teh result "image" jlabel's it's icon.

the reason timer fact operation of applying brightness can not take time, can increase amount of memory application consumes. want reduce absolute minimum if can


Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -