Ajuda [Resolvido]

4 respostas
F

Oi galera estou por aqui novamente.

Gostaria de uma ajudinha no meu código, a propósito se alguém souber indicar um bom material de swing e gui pois só achei incompleto.
O que eu quero saber é como eu faço para alinhar no JtextField a direita e não estou conseguindo fazer funcionar o botão igual.
Segue meu código

btUm.addActionListener(this);
		btDois.addActionListener(this);
		btTres.addActionListener(this);
		btQuatro.addActionListener(this);
		btCinco.addActionListener(this);
		btSeis.addActionListener(this);
		btSete.addActionListener(this);
		btOito.addActionListener(this);
		btNove.addActionListener(this);
		btZero.addActionListener(this);

		btVirgula.addActionListener(this);

		btMultiplica.addActionListener(this);
		btSoma.addActionListener(this);
		btSubtrai.addActionListener(this);
		btDivide.addActionListener(this);

		btReiniciar.addActionListener(this);

	}

	public void actionPerformed(ActionEvent e) {
		String s = e.getActionCommand();

		if (s.equals("C")) {
			operando1 = 0;
			op = "=";
			text.setText("0");
			start = true;
		} else if ('0' <= s.charAt(0) && s.charAt(0) <= '9' || s.equals(",")) {
			if (start) {
				text.setText(s);
				start = false;
			} else {
				text.setText(text.getText() + s);
			}
		} else {
			if (s.equals("+/-")) {
				double total = 0;
				double x = Double.parseDouble(text.getText());

				if (x != 0)
					total = (x * -1);
				text.setText("" + total);
			}

			String comum = " = + - * / \u00d7 \u00f7";

			if (comum.indexOf(s) != -1) {
				double x = Double.parseDouble(text.getText());
				calculate(x);
				op = s;
				start = true;
			} else {
				if (s.equals("=")) {
					double x = Double.parseDouble(text.getText());
					calculate(x);
					op = s;
					start = true;
				}
			}
		}

	}

	public void calculate(double n) {
		if (op.equals("+"))
			operando1 += n;
		else if (op.equals("-"))
			operando1 -= n;
		else if (op.equals("\u00d7"))
			operando1 *= n;
		else if (op.equals("\u00f7"))
			operando1 /= n;
		else if (op.equals("+"))
			operando1 += n;
		else if (op.equals("="))
			operando1 = n;

		text.setText("" + operando1);
	}

	private double operando1 = 0;
	private boolean start = true;
	private String op = "=";
}

4 Respostas

S

Use o migLayout, aqui tem exemplos de como funciona, super tranquilo.
miglayout

F

Obrigado, vou dar uma olhada porém o que eu preciso é fazer desta forma mesmo.

F

Tenho que usar o GridLayout alguém pode me ajudar?

F

Bem pessoal eu já resolvi o problema do resultado agora falta apenas no campo digitado esperar os valores do lado direito ao invés de esperar do lado esquerdo como default
Valeu galera fico no aguardo

Criado 30 de maio de 2010
Ultima resposta 31 de mai. de 2010
Respostas 4
Participantes 2