java - how to pass value to rotate method on menu item click? -


i developing application of rotating image. user click menu item per image should rotate. right have implemented keyboard listener, in user press right left button moves want change method , want per menu item click.

right passes degrees variable method rotate, want custom , user click menu item pass value. don't know how do.

my code:

public class rotateimgn extends jpanel {   private static final long serialversionuid = 1l;   imageicon image = new imageicon("d://workspace//scaleimage//src//images//img.png");   jlabel label = new jlabel(image);   jpanel rotationpanel;   final int width = 350;   final int height = 500;   double degrees;    public rotateimgn() {      setpreferredsize(new dimension(446, 500));      setfocusable(true);      addkeylistener(new keyboardlistener());     rotationpanel = new jpanel();     rotationpanel = new turningcanvas();     rotationpanel.setpreferredsize(new dimension(image.geticonwidth(), image.geticonheight()));     add(rotationpanel);      jmenubar menubar = new jmenubar();     add(menubar);      jmenu mnfile = new jmenu("rotate");     menubar.add(mnfile);      imageicon icon90 = createimageicon("/images/images_right.png");     jmenuitem mntmtr90 = new jmenuitem("rotate 90+", icon90);      mntmtr90.addactionlistener(new actionlistener() {        @override       public void actionperformed(actionevent arg0) {         try {          } catch (exception e) {           e.printstacktrace();         }        }     });      mnfile.add(mntmtr90);      imageicon icon180 = createimageicon("/images/images_vertical.png");     jmenuitem mntmrt180 = new jmenuitem("rotate 180+", icon180);     mnfile.add(mntmrt180);      jseparator separator = new jseparator();     mnfile.add(separator);      imageicon micon90 = createimageicon("/images/images_left.png");     jmenuitem mntmtrm90 = new jmenuitem("rotate 90-", micon90);     mnfile.add(mntmtrm90);      imageicon micon180 = createimageicon("/images/images_horizontal.png");     jmenuitem mntmrtm180 = new jmenuitem("rotate 180-", micon180);     mnfile.add(mntmrtm180);     rotationpanel.setbounds(width / 2, height / 2,         rotationpanel.getpreferredsize().width,          rotationpanel.getpreferredsize().height);     degrees = 0;   }    public void paintcomponent(graphics g) {     super.paintcomponent(g);   }    public class turningcanvas extends jpanel {     private static final long serialversionuid = 1l;      public void paintcomponent(graphics g) {       super.paintcomponent(g);       graphics2d g2d = (graphics2d) g;       g2d.rotate(math.toradians(degrees), image.geticonwidth() / 2,           image.geticonheight() / 2);       image.painticon(this, g2d, 0, 0);      }   }    public class keyboardlistener implements keylistener {     public void keypressed(keyevent event) {       if (event.getkeycode() == keyevent.vk_left) {         degrees--;         repaint();       }       if (event.getkeycode() == keyevent.vk_right) {         degrees++;         repaint();       }     }      public void keytyped(keyevent event) {     }      public void keyreleased(keyevent event) {     }   }    public static void main(string[] args) {     rotateimgn test = new rotateimgn();     jframe frame = new jframe();     frame.setcontentpane(test);     frame.pack();     frame.setvisible(true);   }    protected static imageicon createimageicon(string path) {     java.net.url imgurl = rotateimgn.class.getresource(path);     if (imgurl != null) {       return new imageicon(imgurl);     } else {       system.err.println("couldn't find file: " + path);       return null;     }   } } 

anyone's idea me lot so...

use swing actions menu items instead of strings. then, in actionperformed method, update degreesvariable, keylistener.

something like:

imageicon icon90 = createimageicon("/images/images_right.png"); jmenuitem mntmtr90 = new jmenuitem(new abstractaction("rotate 90+", icon90) {     public void actionperformed(actionevent e) {         degrees += 90;         repaint();     } }); 

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

php - MySQLi multi_query results for later use -