na minha classe princiapal public static void main(String[] args), vi algumas pessoas falando que nao é muito aconselhavel colocar codigos no método principal é verdade isso? pq criei um projeto e inseri
EventQueue queue = new EventQueue()
{
protected void dispatchEvent(AWTEvent event)
{
super.dispatchEvent(event);
para capturar as teclas do teclado estou errado em fazer desse modo?
Entendi o que vcs falaro e tambem entendi que usaras constantes da classe KeyEvent ficar ate mais facil de depois re-tratar algum evento, mas vejam isso
EventQueuequeue=newEventQueue(){protectedvoiddispatchEvent(AWTEventevent){super.dispatchEvent(event);Stringa[];Stringtecla[];if(!event.paramString().equals("")){//System.out.println(event.paramString().substring(0,5));if(event.paramString().substring(0,5).equals("KEY_P")){a=event.paramString().split(",");tecla=a[1].split("=");switch(Integer.parseInt(tecla[1])){caseKeyEvent.VK_ESCAPE:if(Vendas!=null){Vendas.setVisible(false);// como uma nova janela é criada cada vez, dispose();}break;caseKeyEvent.VK_F1:Vendasvendas=newVendas();vendas.setVisible(true);break;}}}//System.out.println("event mask: " + event.paramString());}};Toolkit.getDefaultToolkit().getSystemEventQueue().push(queue);}
esse e o codigo nas 3 linhas estão sublinhado com a seguinte error non-static method dispose()cannot be referenced from a static context ,
non-static method setVisbile()boolean be referenced from a static context
operator != cannot be apllied to Vendas
[code]
if (Vendas != null) {
Vendas.setVisible(false); // como uma nova janela é criada cada vez,
dispose();
[code]
Andre_Brito
Opa.
O que é Vendas? É uma classe, certo? dispose e setVisible() são métodos herdados e não são estáticos. Então acho que não podem ser chamados como métodos de classe. Cria uma instância de Vendas e aplica os métodos usando essa instância.