Handling an IRController
I would try to create a data structure which stores both event data and required action. Something like this:

Map&lt;byte[], Runnable&gt; commands = new HashMap&lt;&gt;();
commands.put(Keys.POWER, SHUTDOWN);
...


Then you can iterate it over:

for (Map.Entry&lt;byte[], Runnable&gt; entry: commands) {
    if (Array.equals(entry.getKey(), recData)) {
        Platform.runLater(entry.getValue());
    }
}

It seems that the logger uses a wrong classname here:


Logger.getLogger(Keys.class.getName()).log(Level.SEVERE, null, ex);



It might mislead maintainers/bug hunters.
The comments is just a noise here, you should remove it:


throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.



(Clean Code by Robert C. Martin: Chapter 4: Comments, Noise Comments)
Usually I try to avoid abbreviations like upde, shtdnWin, actShutdown. They are not too readable and I suppose you have autocomplete (if not, use an IDE, it helps a lot), so using longer names does not mean more typing but it would help readers and maintainers a lot since they don't have to remember the purpose of each variable - the name would express the programmers intent and would not force readers to decode the abbreviations every time they read/maintain the code.

See also: Clean Code by Robert C. Martin, Use Intention-Revealing Names, p18; Avoid Mental Mapping, p25


  If you can’t pronounce it, you can’t discuss it without sounding like an idiot. “Well,
  over here on the bee cee arr three cee enn tee we have a pee ess zee kyew int, see?” This
  matters because programming is a social activity.


Source: Clean Code by Robert C. Martin, Use Pronounceable Names, p21
Key_Action does not follow the usual Java naming conventions. Classnames should be CamelCase, without underscore.