Botão mais e menos

4 respostas
AlissonGuj

ola pessoal eu quero faze o seguinte:

quanto o cara clica no botão +/- ele fique o número que está lah na tela negativo e se ele clicar denovo fique positivo ou seja que apague o -

exemplo:

o numero que esta na tela eh 5

o cara clica no botao +/- deve ficar assim -5

e se ele clica denovo ele deve ficar 5

tela=tfvisor.getText(); if (tfvisor.getText().equals("0")){ tfvisor.setText("0"); }else{ tfvisor.setText("-"+tela); }

com esse codigo ele soh deixa negativo mas nao positivo

obrigado

4 Respostas

M
Salve, instancie uma váriavel de status, que mude cada vez que o botão for clicado, exemplo:
int status = 1; // defina por exemplo, 1 para negativo, e 0 para positivo
Quando status = 1, transforme o numero da tela em negativo, quando status = 0, faça o contrário..
criador

Pesquise por java.util.regex.Matcher
Acredito que tenha algum método que faça isto para você.

Ou senão, multiplique sempre por -1 o valor atual.

Exemplo:

int a = 500;
		
a = a * -1;
System.out.println(a);
a = a * -1;
System.out.println(a);
a = a * -1;
System.out.println(a);
a = a * -1;
System.out.println(a);
a = a * -1;
System.out.println(a);

Se você rodar isto, verá que sempre irá retornar o sinal contrário do valor.

Abraço!

criador

Fiz um pequeno exemplo.
Talvez isto te ajude.

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class PositivoNegativo extends JFrame
{
	private JTextField field;
	private JButton button;
	
	private PositivoNegativo()
	{
		setSize(100,120);
		setLayout(null);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		criarJanela();
	}
	
	private void criarJanela()
	{
		field = new JTextField();
		field.setBounds(5,5,50,20);
		getContentPane().add(field);
		
		button = new JButton
		(
			new AbstractAction("+/-") {
				public void actionPerformed(ActionEvent e ) {
					
					if (!field.getText().isEmpty()) {
						
						field.setText(""+Integer.parseInt(field.getText()) * (-1));
					}
				}
			}
		);
		button.setBounds(5,30,50,20);
		getContentPane().add(button);
	}
	
	public static void main(String[] args)
	{
		JFrame.setDefaultLookAndFeelDecorated(true);
		new PositivoNegativo().setVisible(true);
	}
}

Abraço!

lina

Oi,

Você poderá utilizar a função abs da classe Math para retornar o valor absoluto. (positivo):

int num = -172; System.out.println(Math.abs(num)); // Mostra 172.

E para números transformar em negativos basta multiplicar por -1 (Confome já falado), ou então:

int num = 172; System.out.println(-Math.abs(num));

Tchauzin!

Criado 13 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 4
Participantes 4