Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (133)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  [JFrame listen for JMenuItem label changes?] [FIXED]  (Read 1085 times)
0 Members and 1 Guest are viewing this topic.
Offline GabrielBailey74
« Posted 2012-02-02 01:42:36 »

My problem is that when I create my JFrame, it's only setting the first String of 'debugginState', where later I added a ActionListener, and it's still not updating the JFileMenuItem's label.

Here's the 2 pieces of code.

Code: (Majority chopped out)
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
   public void createFrame() {
      debuggingState = "Debugging: Off";
      secondButtons = new String[] {debuggingState, "-", "StopWatch"};
      for (String name : secondButtons) {
         menuItem2 = new JMenuItem(name);
         if (name.equalsIgnoreCase("-")) {
            optMenu.addSeparator();
         } else {
            menuItem2.addActionListener(this);
            optMenu.add(menuItem2);
         }
      }
   }


And there's a ActionListener that is bieng called (had it outprint 'true', if the button pressed = ignoreCase"Debugging: Off", than set the debuggingState string = "Debugging: On";

Here's the ActionListener:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
   public void actionPerformed(ActionEvent evt) {
      String cmd = evt.getActionCommand();
      try {
         if (cmd != null) {
            if (cmd.equalsIgnoreCase("Debugging: Off")) {
               debuggingState = "Debugging: On";
               secondButtons[0] = debuggingState;
               menuItem2.setText(secondButtons[0]);
               pe.debugging = true;
            }
            if (cmd.equalsIgnoreCase("Debugging: On")) {
               debuggingState = "Debugging: Off";
               secondButtons[0] = debuggingState;
               menuItem2.setText(secondButtons[0]);
               pe.debugging = false;
            }
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }


If someone could point me in the direction on how to get that actionPerformed method to update the JFrame's JMenuItem labels text, that would be great.
Any ideas?
 ^_^.

Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #1 - Posted 2012-02-02 01:59:36 »

You're only modifying the "debuggingState" variable. To change the label of a JMenuItem, you need to call JMenuItem.setText(String);

Offline GabrielBailey74
« Reply #2 - Posted 2012-02-02 02:02:31 »

I did, it's only changing the label BELOW that...
Even though done as you said.

1  
2  
3  
4  
5  
6  
            if (cmd.equalsIgnoreCase("Debugging: Off")) {
               OutPrint.write("true");
               debuggingState = "Debugging: On";
               secondButtons[0] = debuggingState;
               menuItem2.setText("Lawl...");
            }


There's three menuItems (menuItem1 (2 subs)), (menuItem2 (2 subs)), and menuitem3 (3 subs)).

Only one i'm wanting to change is #2, but the first string for the JMenuItem in that menu.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #3 - Posted 2012-02-02 02:14:37 »

Look at the foreach loop in createFrame(), after the loop ends, menuItem2 is referring to the last assigned JMenuItem object, which here it would be StopWatch. Tongue

Offline GabrielBailey74
« Reply #4 - Posted 2012-02-02 02:17:55 »

Ah, and we have lift off.
Click to Play

Great, just had to remove stopwatch  ._. Shocked.
lol, thanks mate.

Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #5 - Posted 2012-02-02 02:24:06 »

If you didn't want to remove stopWatch, the only way to go about this is to manually add each...which is just 3 lines of code instead of the 11 lines of code in your method:
1  
2  
3  
4  
5  
public void createFrame() [
    menuItem2 = optMenu.add(new JMenuItem("Debugging: Off"));
    optMenu.addSeparator();
    optMenu.add(new JMenuItem("Stopwatch"));
}


Grin

Offline GabrielBailey74
« Reply #6 - Posted 2012-02-02 02:32:07 »

Going to come in handy when sounds added, thanks.
Going to be looking further into DropDownMenus/CheckBoxes.

Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #7 - Posted 2012-02-02 03:32:20 »

Yeah try not to overengineer things Grin

Offline GabrielBailey74
« Reply #8 - Posted 2012-02-02 03:46:28 »

LOL, you definitively need to say that in Java...
I tried creating a little test of what I thought would come out as the 'Turbine Super Engine' of platformer games.
Made like 20+ files, looped em all together, (Over-Engineered) to the max.
Came out like shit, and I mean...
Shit lol, took like 15 seconds to show the JFrame.

Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #9 - Posted 2012-02-02 04:17:21 »

Hahahahahaha exactly Smiley

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (37 views)
2014-12-15 09:26:44

Mr.CodeIt (31 views)
2014-12-14 19:50:38

BurntPizza (62 views)
2014-12-09 22:41:13

BurntPizza (99 views)
2014-12-08 04:46:31

JscottyBieshaar (60 views)
2014-12-05 12:39:02

SHC (74 views)
2014-12-03 16:27:13

CopyableCougar4 (77 views)
2014-11-29 21:32:03

toopeicgaming1999 (138 views)
2014-11-26 15:22:04

toopeicgaming1999 (127 views)
2014-11-26 15:20:36

toopeicgaming1999 (38 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!