JInternalFrame - Duvida basica

Eu gostaria de saber quando JInternalFrame esta minimizado, como maximiza-lo por linha de comando?

Porque tipo, quando eu minizimo, ele vai la em baixo no canto esquerdo, dai se eu clico no menu que abre ele novamente, nao acontece nada. Entao eu gostaria de fazer um codigo que testa se ja esta aberto, caso estiver, ele maximiza-o. Alguem tem ideia de como fazer isso?

Abraços

para vc saber se o JInternalFrame está minimizado vc usa o método isIconfiable

acho q esse é o nome dele

ai é só vc usar com um if

o método que faz ele mudar é o setIcon… o resto eu não lembro de cabeça

  1. Verifica se a janela é existe (se ela é diferente de null).
  2. Se existir, verifica se está minimizada com o isIcon().
  3. Se estiver minimizada, chama o setIcon(false) para restaurar.
  4. Se não estiver minimizada, apenas passa o foco para ela com toFront().

Meu ActionPerformed esta assim:

if(jifCadastrarClientes.isIcon()) jifCadastrarClientes.setIcon(true); else jifCadastrarClientes.setVisible(true);

Mesmo assim nao consegui… alguem sabe porque?

Tenho outro duvida tambem, quando eu arrasto o JInternalFrame, se ele ultrapassar o JDesktopPane ele consegue ne, como eu faço pra limitar o JInternalFrame a apenas a area do JDesktopPane?

[Editado]

Galera, surgiu outra duvida. Vamos supor que em um campo CPF, la no JTextField eu queira colocar assim:

pra que na hora que a pessoa clicar no TextField, ele vá direto para o começo dele e ao digitar 3 numeros, o ponteiro pule o ponto e passe para o proximo campo. Como fazer isso?

Outra coisa tambem que eu estava vendo no meu programa, quando eu minimizo o JInternalFrame o foco muda de campo… o estanho é que ele muda no sentido de cima para baixo, sendo que na frente do 1 campo que esta com foco tem outros TextFields. E o foco sempre para no ultimo TextField la em baixo… alguem sabe se isso é normal?

Abraços

Vamos por partes.

  1. Você verifica se o jifCadastrarClientes está minimizado e, se estiver, o minimiza de novo?? O correto seria:
if(jifCadastrarClientes.isIcon()) // se for um icon
    jifCadastrarClientes.setIcon(false); // tira desse estado
else // senão (não está iconizada)
    jifCadastrarClientes.toFront(); // trás para frente das outras
  1. Quanto ao CPF, use um JFormattedTextField que resolverá seu problema.

  2. Quanto ao foco dentro do JInternalFrame, nunca tinha visto isso. Talvez outra pessoa possa ajudar.

Ok, assim que eu chegar em casa estarei vendo. Sobre o foco, tambem achei estranho amigo.

Se alguem souber o que é, por favor me ajude…

Abraços

[quote=marcobiscaro2112]Vamos por partes.

  1. Você verifica se o jifCadastrarClientes está minimizado e, se estiver, o minimiza de novo?? O correto seria:
if(jifCadastrarClientes.isIcon()) // se for um icon
    jifCadastrarClientes.setIcon(false); // tira desse estado
else // senão (não está iconizada)
    jifCadastrarClientes.toFront(); // trás para frente das outras
  1. Quanto ao CPF, use um JFormattedTextField que resolverá seu problema.

  2. Quanto ao foco dentro do JInternalFrame, nunca tinha visto isso. Talvez outra pessoa possa ajudar.[/quote]

Eu tentei com esse codigo amigo, nao funcionou. Deu exception… :frowning:

[quote]Exception in thread “AWT-EventQueue-0” java.lang.RuntimeException: Uncompilable source code - unreported exception java.beans.PropertyVetoException; must be caught or declared to be thrown
at projlocadora.TelaPrincipal.jmiCad_ClientesActionPerformed(TelaPrincipal.java:668)
at projlocadora.TelaPrincipal.access$000(TelaPrincipal.java:23)
at projlocadora.TelaPrincipal$1.actionPerformed(TelaPrincipal.java:600)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1216)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1257)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)[/quote]

Eu quero fazer o seguinte, na hora que eu clico no menu Cadastrar > Clientes ele vai abrir o JInternalFrame, se por acaso eu clicar em minimizar, ele vai la pro canto. Vamos dizer que eu esqueça que eu minimizei e vou novamente em Cadastrar > Clientes. Ao inves de abrir outro JInternalFrame, eu quero maximizar o ja aberto…

Abraços

O setIcon pode lançar uma PropertyVetoException. E por isso vc deve captura-la.

try { if(jifCadastrarClientes.isIcon()) // se for um icon jifCadastrarClientes.setIcon(false); // tira desse estado else // senão (não está iconizada) jifCadastrarClientes.toFront(); // trás para frente das outras } catch (PropertyVetoException e) {}