Friday 15 May 2015

swing - Changing Java button background color on pressing keyboard button -



swing - Changing Java button background color on pressing keyboard button -

i trying write code create gui using java after pressing button on keyboard, associated button in gui changes it's colour. please check code color alter isn't happening. give thanks you

package controller; import javax.swing.*; import javax.swing.text.attributeset; import javax.swing.text.badlocationexception; import javax.swing.text.defaultstyleddocument; import javax.swing.text.style; import javax.swing.text.styleconstants; import javax.swing.text.stylecontext; import javax.swing.text.styleddocument; import java.util.enumeration; import java.awt.color; import java.awt.dimension; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.event.*; public class gui extends jpanel implements actionlistener, keylistener { boolean running = true; int frontkey = keyevent.vk_w; int backkey = keyevent.vk_s; int leftkey = keyevent.vk_a; int rightkey = keyevent.vk_d; static boolean backkeypressed = false; static boolean frontkeypressed = false; static boolean leftkeypressed = false; static boolean rightkeypressed = false; int listenkey = 0; public jbutton bfront, bback, bleft, bright; styleddocument instructionstext; public jtextpane instructions; public gui() { setlayout(new gridbaglayout()); this.setpreferredsize(new dimension(400,400)); gridbagconstraints c = new gridbagconstraints(); c.fill = gridbagconstraints.both; c.gridx = 0; c.gridy = 0; c.gridwidth = 4; styleddocument instructionstext = new defaultstyleddocument(); style defaultstyle = instructionstext.getstyle(stylecontext.default_style); styleconstants.setalignment(defaultstyle, styleconstants.align_center); seek { instructionstext.insertstring(0, "control robot using keyboard.\n alter key bindings clicking buttons below.", null); } grab (badlocationexception e) { e.printstacktrace(); } instructions = new jtextpane(instructionstext); instructions.setfocusable(false); add(instructions,c); bfront = new jbutton("forward key: " + keyevent.getkeytext(frontkey)); bfront.setactioncommand("forward"); bfront.addactionlistener(this); bfront.setfocusable(false); c.gridwidth = 1; c.gridx = 1; c.gridy = 1; add(bfront,c); bback = new jbutton("backward key: " + keyevent.getkeytext(backkey)); bback.setactioncommand("backward"); bback.addactionlistener(this); bback.setfocusable(false); c.gridx = 1; c.gridy = 4; add(bback,c); bleft = new jbutton("left key: " + keyevent.getkeytext(leftkey)); bleft.setactioncommand("left"); bleft.addactionlistener(this); bleft.setfocusable(false); c.gridx = 0; c.gridy = 3; add(bleft,c); bright = new jbutton("right key: "+ keyevent.getkeytext(rightkey)); bright.setactioncommand("right"); bright.addactionlistener(this); bright.setfocusable(false); c.gridx = 3; c.gridy = 3; add(bright,c); setfocusable(true); addkeylistener(this); } public static void main(string arg[]) { // todo auto-generated method stub //create , show gui javax.swing.swingutilities.invokelater(new runnable() { public void run() { createandshowgui(); } }); } private static void createandshowgui() { //create , set window. jframe frame = new jframe("telepresence robot controller"); frame.setlocationrelativeto(null); //tell programme exit when gui closed frame.setdefaultcloseoperation(jframe.exit_on_close); final gui gui = new gui(); //create gui gui.setopaque(true); //set visible frame.setcontentpane(gui); //attach jframe //display window. frame.pack(); frame.setvisible(true); } @override public void actionperformed(actionevent e) { if(e.getactioncommand().equals("forward")) { listenkey = 1; } else if(e.getactioncommand().equals("backward")) { listenkey = 2; } else if(e.getactioncommand().equals("left")) { listenkey = 3; } else if(e.getactioncommand().equals("right")) { listenkey = 4; } } @override public void keypressed(keyevent e) { // todo auto-generated method stub if(listenkey == 0) if(e.getkeycode() == frontkey) { bfront.setbackground(color.yellow); frontkeypressed = true; } else if(e.getkeycode() == backkey) { bback.setbackground(color.yellow); backkeypressed = true; } else if(e.getkeycode() == leftkey) { bleft.setbackground(color.yellow); leftkeypressed = true; } else if(e.getkeycode() == rightkey) { bright.setbackground(color.yellow); rightkeypressed = true; } } @override public void keyreleased(keyevent e) { // todo auto-generated method stub switch(listenkey) { case 1: frontkey = e.getkeycode(); bfront.settext("forward key: " + keyevent.getkeytext(frontkey)); listenkey = 0; break; case 2: backkey = e.getkeycode(); bback.settext("backward key: " + keyevent.getkeytext(backkey)); listenkey = 0; break; case 3: leftkey = e.getkeycode(); bleft.settext("left key: " + keyevent.getkeytext(leftkey)); listenkey = 0; break; case 4: rightkey = e.getkeycode(); bright.settext("right key: " + keyevent.getkeytext(rightkey)); listenkey = 0; break; default: if(e.getkeycode() == frontkey) { bfront.setbackground(color.yellow); frontkeypressed = false; } else if(e.getkeycode() == backkey) { bback.setbackground(null); backkeypressed = false; } else if(e.getkeycode() == leftkey) { bleft.setbackground(null); leftkeypressed = false; } else if(e.getkeycode() == rightkey) { bright.setbackground(null); rightkeypressed = false; } break; } } @override public void keytyped(keyevent e) { // todo auto-generated method stub } }

java swing button jbutton background-color

No comments:

Post a Comment