Ajuda [Resolvido]

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 = "=";
}

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

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

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

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