Inserir valores em Applet

2 respostas
F

Olá Comunidade.

Estou migrando agora para a linguagem java. Em meus estudos de Applets, me interessei em fazer um que mostre retangulos, de altura definida pelo usuario. Tentei da seguinte forma, usando JOptionPane:

import javax.swing.JApplet;
import javax.swing.JOptionPane;
import java.awt.Graphics;

public class graf extends JApplet
{
	public void paint(Graphics g)
	{
		super.paint(g);
		
		String str1 = JOptionPane.showInputDialog(null, "Informe a altura de um Retangulo!");
		int altura = new Integer.parseInt(str1);
		g.drawRect(200, 200, 100, altura);
	}
}

Porem quando chamo HTML, tanto pelo IE, Chrome, Firefox e AppletViewer, a box do JOptionPane fica em loop e mesmo depois de dar OK e fecha-la ela permanece abrindo.

Minha duvida é:

Aonde estou errando? JOptionPane é realmente a melhor opção para realizar esse tipo de inserção? Se não, qual é aconselhavel usar?

Grato, Folker.

2 Respostas

M

Você está perguntando o tamanho a cada vez que o Applet é redesenhado. O certo é perguntar apenas uma vez, quando ele inicia a execução (ou seja, dentro do método start).

F

Obrigado brother, era isso mesmo, falto entender sobre esse procedimento. O codigo correto para o que eu queria fazer fica assim entaum ( Em caso de futuras duvidas semelhantes ):

import javax.swing.JApplet;
import javax.swing.JOptionPane;
import java.awt.Graphics;

public class graf extends JApplet
{
	String pais1, num;
	int rend;
	public void start()
	{
		pais1 = JOptionPane.showInputDialog(null, "Informe o nome da primeira empresa!");
		num = JOptionPane.showInputDialog(null, "Informe o rendimento da empresa!");
		rend = Integer.parseInt(num);		
	}
		
	
	public void paint(Graphics g) 
	{
		super.paint(g);	
		g.drawRect(100, 90, 50, rend);
		g.drawString(pais1, 100, 100+ rend);
	}	
			
}

Obrigado Marco Biscaro

Criado 30 de julho de 2010
Ultima resposta 31 de jul. de 2010
Respostas 2
Participantes 2