JInternalFrame - Duvida basica

7 respostas
blackfalcon

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

7 Respostas

zoren

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

M
  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().
blackfalcon

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

M

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.

blackfalcon

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

blackfalcon

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.

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

<blockquote>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)</blockquote>

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

ViniGodoy

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) {}

Criado 10 de janeiro de 2010
Ultima resposta 12 de jan. de 2010
Respostas 7
Participantes 4