Como lidar com as teclas pressionadas em uma aplicação gráfica J2ME




I programado um controle Bluetooth TV-Remote para celulares em J2ME usando `javax.microedition.lcdui.*`(Gauge, List, ChoiseGroup) GUI-Elements.


Eu quero o celular para ter uma interação em tempo real com a minha televisão, eu gostaria de encontrar maneira de enviar entradas do usuário realizadas com o GUI-Elements imediatamente (como mudar o canal ou alterar o volume) para a televisão. 


Desde que eu quero interação em tempo real com a minha televisão, eu gostaria de encontrar maneira de enviar entradas do usuário realizadas com o GUI-Elements imediatamente (por exemplo, mudar de canal ou alterar o volume) para a TV. 


Usando `javax.microedition.lcdui.Command`/ `CommandListner`e `commandAction`não irá funcionar uma vez que estes só precisa reconhecer os comandos selecionados com os botões laterais. Eu gostaria de ter algo que pode reconhecer qualquer tecla pressionada.


Descobri que `Javax.microedition.lcdui.Canvas.keyPressed`pode lidar com qualquer tecla pressionada no celular, mas eu não sei como fazer o trabalho da lona com elementos MIDP GUI como Gauge. Eles não podem ser adicionados como Comandos.


Eu tenho que descobrir o caminho para construir uma interface para estes elementos GUI para fazê-los trabalhar com lona?
Acabei de encontrar uma solução metade mim, se alguém estiver interessado: "javax.microedition.lcdui.ItemStateListener". Esta função pode lidar com os estados (ou mudanças de estado) dos itens GUI em tempo real. A sua não keyPress, mas isso vai funcionar tão bem para a minha candidatura.
<p>se bem entendi, você deseja enviar dados para um programa em execução dentro de uma sessão de tela. você pode fazer isso com o comando <code>stuff</code> da tela. use a tela <code>-x</code> opção para executar um comando em uma sessão de tela sem anexar a ela.</p><pre><code>screen -s sessionname -p windowname -x stuff 'command1 command2 ' </code></pre><p>se você quiser ver a saída do programa, consulte os comandos <code>hardcopy</code>, <code>log</code> e <code>logfile</code>.</p> <p>agradeço o help. consegui a seguinte solução: comunicação entre ipcrenderer e ipcmain através dos métodos send() e on(). </p>
<pre class="prettyprint"><code>botaostart.addeventlistener(&#39;click&#39;, () &#61;&gt; {
 ipcrenderer.send(&#39;start-tela&#39;);
});</code></pre><p>uma vez realizada a comunicação, utilizei o método: browserwindow.webcontents.send() enviando um evento para todas as telas interessadas.</p>
<pre class="prettyprint"><code>ipcmain.on(&#39;start-tela&#39;, () &#61;&gt; {
 controlwindow.webcontents.send(&#39;start&#39;);
 mainwindow.webcontents.send(&#39;start&#39;);
});</code></pre> [imagem]

[como projetar a imagem do pc na smart tv através do wi-fi no linux?](https://plus.diolinux.com.br/t/como-projetar-a-imagem-do-pc-na-smart-tv-atraves-do-wi-fi-no-linux/4824/21) [linux](/c/linux/7)

infelizmente não tenho smart-tv para fazer os testes, mas está em desenvolvimento um programa próprio para isto, que talvez futuramente f faça parte dos pacotes básicos do gnome, no momento … <p>existem boas soluções para mac e windows que eu conheço:</p><h2>windows 7</h2><p>este recurso é construído e é chamado <strong> aero snap </strong>. você pode usar os seguintes atalhos de teclado para obter o comportamento desejado:</p><ul> <li><kbd>win</kbd> + <kbd>&leftarrow;</kbd> move a janela atual para a metade esquerda da tela.</li> <li><kbd>win</kbd> + <kbd>&rightarrow;</kbd> move a janela atual para a metade direita da tela.</li> <li><kbd>win</kbd> + <kbd>&uparrow;</kbd> maximes a janela atual.</li> </ul><h2>windows xp e vista</h2><p> <a href="http://jgpaiva.dcmembers.com/gridmove.html">gridmove</a> permite que você configure regiões para encaixar janelas através de uma tecla de atalho. eu mapeei <kbd>win</kbd> + <kbd>1</kbd> para mover uma janela para a metade esquerda da tela e <kbd>win</kbd> + <kbd>2</kbd> para usar a metade direita.</p><p> <a href="http://www.aerosnap.de/index\_eng.htm">aerosnap</a> torna os atalhos de teclado nativos do windows 7 disponíveis no windows vista e no windows xp.</p><h2>mac os x</h2><p> <a href="http://www.irradiatedsoftware.com/cinch/">cinch</a> , <a href="http://www.irradiatedsoftware.com/sizeup/">sizeup</a> (ambos testes gratuitos ilimitados) e twoup (descontinuado - disponível <a href="http://download.cnet.com/twoup/3000-2346\_4-10907668.html">aqui</a> ) da irradiated software todos realizam essa tarefa perfeitamente. o sizeup adiciona alguns recursos extras, incluindo suporte a vários monitores.</p> dá pra ficar alternando de boa. inclusive isso é uma função prevista nas telas de login do linux.

o maior problema é a duplicação de aplicativos (gedit/mousepad, thunar/nautilus, etc.) mas é só apagar o outro conjunto de aplicativos quando você se decidir. se vc utiliza o mdiform com mdichid´s, basta setar, no mdiform, a propriedade windowmenu para o item de do menu que deverá controlar as janelas. pode ficar tranquilo que o windows faz o controle pra v... são apps da nos. por exemplo uma delas sendo a nos tv. para ver televisão no telemovel ou tablet, etc. tens gigas só para isso. podes ver as apps na área de cliente em “gerir apps nos” além da dica do [@leoteodoro](/u/leoteodoro), caso queira você pode instalar o pacote tilix-nautilus, isso vai te dar uma opção no menu de contexto do nautilus para abrir com o tilix.

[[captura de tela de 2020-10-22 01-00-08]](https://plus.diolinux.com.br/uploads/default/original/3x/e/9/e93a4f2cee6fc3de448e89dbed8718ccff8f8ca6.jpeg "captura de tela de 2020-10-22 01-00-08") <p>este <a href="http://windowsteamblog.com/windows\_phone/b/wpdev/archive/2010/03/18/windows-phone-7-series-ui-design-amp-interaction-guide.aspx">postagem no blog</a> vincula ao <a href="http://msdn.microsoft.com/en-us/library/hh202915%28v=vs.92%29.aspx">guia de design e interação de interface do usuário do windows phone 7 series</a> , o que provavelmente é do seu interesse.</p><p>se você estiver criando um aplicativo nativo, provavelmente desejará fazê-lo de acordo com as orientações da interface do usuário do dispositivo. uma exceção pode ser se você estiver criando um aplicativo que forneça uma interface para um site (como os aplicativos twitter e facebook para iphone e android) - aqui, convém projetá-lo para parecer com seu site para fornecer familiaridade aos usuários.</p><p>a decisão de seguir ou não seguir as orientações da interface do usuário é sua. embora seja geralmente uma boa ideia apresentar aos usuários uma interface familiar de algum tipo - outro aplicativo (web ou desktop) ou a interface do telefone.</p> <p>você deve usar somente <strong> <a href="https://www.sevenforums.com/tutorials/487-snap-window-side.html">atalhos de teclado</a> </strong> para essa configuração, já que os movimentos do mouse sozinhos não são compatíveis com esse lado especial que passa para o outro monitor.</p><blockquote> <p>nota: em vários monitores, pressionar continuamente uma combinação de atalho de teclado abaixo fará com que a janela se encaixe lateralmente e role nessa direção pelas várias telas do monitor.</p> <ul> <li> <p><kbd>windows key</kbd> + <kbd>&larr;</kbd><br> isto irá encaixar a janela atual no lado esquerdo da tela, ou soltar uma janela que é encaixada no lado direito da tela.</p> </li> <li> <p><kbd>windows key</kbd> + <kbd>&rarr;</kbd><br> isso fará com que a janela atual fique do lado direito da tela ou solte uma janela que é encaixada no lado esquerdo da tela.</p> </li> </ul> </blockquote>