JApplet

13 respostas
belitos

Ola pessoal,minha duvida eh essa

Eu tenho um applet que se chama Main com um botao,e outro applet que se chama Tela com uma mensagem apenas.
Quando eu clicar no botao que esta contido no applet Main eu gostaria que o applet Tela ficasse visivel,como se eu estivesse chamando outro frame.
Como eu faço isso?
Obrigado

13 Respostas

doug

olá
Não sei se entendi, mas vc consegue fazer um JFrame, normal na applet…
Se vc puder me explicar melhor, pq não entendi muito bem sua dúvida

Flwss

belitos

vou tentar,
eh assim quando eu clikar no botao eu quero que apareca um outro applet na tela!

doug

HUm… carregar 2 applet’s em horas diferentes,

Sinceramente nunca vi fazer isso, não tenho certeza que seja possível
pois a applet é carregada junto com a página…, tenho uma idéia de como
fazer, mas não sei se funciona

Vc faz um applet normal, porém seu botão vai chamar um javascript
que faz um document.write… e escrevendo na tela a tag <applet>

Como eu disse não sei se funciona…

O que sei que pode ser feito e eu já fiz… foi criar um DesktopPane dentro de um
applet, dai eu abre qtas janela eu quiser… pode ser uma solução alternativa para vc.

Espero ter ajudado
Qualquer coisa pode mandar e-mail, dai posso auxiliar
mandando um exemplo…

Flwsss

belitos

hmm,vou tentar isso que vc falou,e vc sabe se isso aqui eh possivel,olha?
quando eu clikar no botao eu redesenha o applet inteiro?
por exemplo:
quando eu clikar no botao eu mudo o tamanho do applet,insiro textfields,labels e etc…

doug

Sim… é possível sim
Vc tem alguns metodos, repaint ou validate… eles repinta todo
os componentes…

Você vai programar igual ao Swing, vai ter as mesma coisa… porém
existe algumas limitações de efeitos de resto é tudo igual.

Flwss.

belitos

AAa
muito bom ^^
obrigado,eee so mais uma coisa
eh possivel eu chamar outras classes atraves do botao do applet ou nao?
por exemplo,quando o usuario clicar no meu botao chamo uma classe ChecaUsuario,que diz se o usuario eh cadastrado ou nao
eh possivel?

doug

Também é possivel…
Você faz um new Classe, no caso ChecaUsuario…
só precisa ver o que vc vai fazer dentro desta classe, se vc
vai conectar ao um banco de dados… dai eu não sei se consegui
fazer normalmente… por webservices eu já fiz!! Nunca testei com
conexao JDBC, acho que também pode ser possível ser feito.

Ahh, detalhe no seu botão vc tem que colocar os listeners, mouselistener e actionlistener
dai dentro deste evento mouseClick() vc faz o new ChecaUsuario. blz

Flws

renzonuccitelli

Se a applet é carregada junto com a página, o que vc poderia fazer é deixar aquela que deseja que só apareça depois com atributo Visible=false, e depois fazer o atributo igual a true com a ação do seu botão

renzonuccitelli

Vou te responder aqui em vez de msg privada. Seria mais o menos o seguinte:

public class AppletASerChamada extends Applet {
	public AppletASerChamada(final Applet outraApplet)
			throws HeadlessException {
		super();
		this.setVisible(true);

	}
}
public class AppletQueVaiTornarOutraVisivel extends Applet {
	public AppletQueVaiTornarOutraVisivel(final Applet outraApplet)
			throws HeadlessException {
		super();
		this.outraApplet = outraApplet;
		JButton botao =new JButton("Chamar Outra Applet");
		botao.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				outraApplet.setVisible(true);
				
			}
			
		});
		this.add(botao);
	}

	private Applet outraApplet;	

}

Talvez em vez de fazer as inicializaçoes no construtor vc tenha que colocar no código que inicializa a applet, que o init se não me engano. Vê se da pra usar essa idéia.

doug

Olá
Não é muito assim… seu código vai ficar mais ou menos assim

URL url = new URL("javascript:mostrarApplet2();");
 getAppletContext().showDocument(url);

//mostrarApplet2 é o método javascript que vai estar na sua página
function mostrarApplet2(){
      document.write("<applet "); //... dai vc continua a tag applet normal
}

// Teve outra idéia postada foi aparecer com o applet dai ficaria assim
// Antes sua tag applet fica entre div com style display none, assim

><div id="applet2" style="display:none;">
    <applet... //tag applet normal
    ></applet>
</div>

//function que irá ser chamada dentro da outra applet.... aquele exemplo que dei acima, ok!!!
function mostrarApplet2(){
     document.getElementById('applet2').style.display = "block";
}

Acho que isso funciona… eu não testei, digitei direto aqui… srsrs

Espero ter ajudado
flwsss

T

Tente não criar 2 applets na mesma página; é difícil controlá-las, e a interação entre ambas é bastante complicada.

Em vez disso, crie apenas uma, e se for absolutamente necessário, crie um JFrame a partir desse JApplet para poder mostrar a outra janela.

M

É mais simples, como já disseram, usar um novo JFrame, ou um JOptionPane.showMessageDialog para mostrar o texto.

Ou, se quiser mesmo usar somente applet, pode-se usar nele o gerenciador de leiaute CardLayout, que permite várias “camadas” no mesmo contêiner.

Veja o tutorial aqui.

belitos

Obrigado a todos!

Criado 4 de janeiro de 2009
Ultima resposta 5 de jan. de 2009
Respostas 13
Participantes 5