Estou com esse problema e gostaria muito de resolver. Pois já visitei vários sites e nada.
Janela principal por cima da janela secundária
40 Respostas
provavelmente você setou a opção AlwaysOnTop no seu JFrame , isso faz com que ele fique acima de qualquer coisa, até de um JOptionPane, pra “consertar” é só tirar essa propriedade.
Olá orochimaru. O que vc me sugeri para resolver essa questão?
Primeiro vc precisa saber se é isso mesmo. Se for, é só desmarcar a opção Always on top, se você escreveu via código, é só apagar a linha.
Ok. Deu certo.
Meu amigo obrigado pela ajuda. Mas tenho também outra duvida. Seguinte: Como mudar a propriedade de um controle(JTextField) que está no formulário mãe por meio de outro que está em formulário filho(este dentro de um JDesktopPane)? Isso vai me ajudar muito.
que propriedade vc quer mudar?
ForeColor. Eu clico em botão(que está no form filho) para mudar a cor da fonte do JTextField(que está no form mãe). É possível? como?
são jframes separados ou tá tudo no mesmo jframe?
Eu tenho só um JFrame(mãe). o outro abre por dentro(filho).
Cara, vc falar mãe e filho só da a entender que são dois. Se está no mesmo JFrame é só mudar a cor pelo nome do componente que vc quer…
jTextField1.setForeground(new Color(242, 149, 25));
Ok. O problema é que eu não sei como estabelecer a comunicação entre o JInternalFrame(filho) e o JFrame(mãe).
Estou a horas tentando algo, mais sem sucesso.
No JFrame(mãe) tem um JDesktopPane, ai eu chamo o JInternaloFrame dentro desse JDesktopPane.
No JInternaloFrame tem um botão, dai quero clicar nele e mudar a propriedade forecolor que está no JFrame(mãe).
seuCampo.setForeground(new Color(242, 149, 25));
O problema é que eu não consigo enxergar o nome do controle(variável associada a ele) dentro do JFRame(mãe).
O JTextField está no JFrame mãe, e o botão está no JInternalFrame filho.
na janela 2 vc faz:
public class SegundaJanela {
private PrimeiraJanela parent;
public SegundaJanela(PrimeiraJanela parent) {
initComponents();
this.parent = parent;
}
...
}
//no ActionPerformed do seu botão vc coloca:
private void seuBotaoActionPerformed(java.awt.event.ActionEvent evt) {
parent.alterarCorTexto();
}
janela 1:
public void alterarCorTexto(){
seuCampo.setForeground(new Color(231, 165, 140));
}
vou testar aqui…
No botão não estou conseguindo acessar ‘parent’, tá destacado de vermelho.
mostra como vc fez
private JFrmGerente parent;
public JFrmCredencial(JFrmGerente parent) {
initComponents();
((BasicInternalFrameUI) this.getUI()).setNorthPane(null);//tirar as bordas do JInternalFrame
this.parent = parent;
}
//no botão
parent.alterarCorTexto();
//no form 1
public void alterarCorTexto(){
jCkbCred.setSelected(true);
}
//no botão
parent.alterarCorTexto();
//no form 1
public void alterarCorTexto(){
jCkbCred.setSelected(true);
}
fiz só para testar em um componente JCheckBox
Cara, coloca tudo em um post só, não cria vários… E quando for postar código, seleciona ele todo e clica em </>

ok…Desculpa ai
esse botão está na janela 2?
Apareceu um erro no form 1
public void abrirJanCred() {
JFrmCredencial cred = new JFrmCredencial();//linha do erro...toda linha ficou vermelhaTexto pré-formatado
if (jPnlEtapas.isVisible() == false) {
cred.setVisible(true);
jDeskGer.add(cred);
} else {
JFrmTrans trans = new JFrmTrans();
trans.setVisible(true);
jDeskGer.add(trans);
jCkbCred.setSelected(true);
}
}
Sim
vc tem que colocar this entre os parenteses.
esse é form mãe
Vou te mostrar um exemplo gráfico pra vc ver como funciona:
JFrame1

JFrame2

Eu quero clicar em ACESSAR e fechar o JInternalFrame e quero que depois marque um JCheckBox no JFrame mãe.
Se conseguir alguma coisa ai me avisa. Valeu.
Prezado, você está entendendo o que os colegas estão te ensinando ou está só copiando, colando e indo na tentativa e erro?
O seu construtor é assim:
public JFrmCredencial(JFrmGerente parent)
Como é que quer chamar ele sem parâmetro nenhum?
staroski, boa tarde. Vou conferir o código.
A variante maior penso eu é que, o botão que vai disparar o evento está no JInternaFrame(form filho).
Cara, eu pedi pra você baixar o TeamViewer via DirectMessage justamente pra te explicar melhor por aúdio, mas você não me retornou mais…
Agora o @staroski te fala uma coisa sobre o seu construtor, e vc fala isso:
Como vc quer criar um software se vc não consegue nem aplicar o que estamos passando?
Volta algumas casinhas, aprende algorítimos, aprende estrutura de linguagem, vc consegue tudo isso de forma gratuita, tem muito conteúdo bom na internet. Eu sei que é chato aprender teoria, mas se vc não consegue ser auto ditada, fazer algumas coisas olhando as imagens e entendendo os código passados, é melhor “perder” um tempo voltando, do que fazer fazer e fazer e não ter ideia do que está fazendo (e pior, não funcionar).


