StringBuilder + If

3 respostas
W

Galera, estou com um problema, tenho que resolver um desafio e já fiz a maioria, porém, não consigo inserir um if dentro do StringBuilder para ele devolver um calculo "se senão" de acordo com o valor que for digitado no inicio.

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class DesafioAPI {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		final JFrame janela;
		JPanel painel;
		JLabel rotulo;
		final JTextField campo;
		JComboBox<String> combo;
		JButton imposto, salario,classificar,sair;
		
		GridLayout grid;
		
		janela = new JFrame("Calculo de Salário");
		rotulo = new JLabel("Salário: ");
		painel = new JPanel();
		imposto = new JButton("1. Calcular Impostos");
		salario = new JButton("2. Calcular Salário");
		classificar = new JButton("3. Classificar Salário");
		sair = new JButton("4. Sair");
		grid = new GridLayout(0, 2);
		campo = new JTextField(10);
		
		painel.setLayout(grid);
		painel.add(rotulo);
		painel.add(campo);
		
		painel.add(imposto);
		painel.add(salario);
		painel.add(classificar);
		painel.add(sair);
		
		
		imposto.addActionListener(new ActionListener() {
			
			
			public void actionPerformed(ActionEvent e) {
				
			
				StringBuilder b = new StringBuilder();
				b.append(Integer.parseInt(campo.getText()));
							
				if (b > 17){ // Ele fala que não posso usar < no argumento, já tentei converter para int e nada resolve =/
					
				}
					
					
					
				
				JOptionPane.showMessageDialog(janela, b.toString());
				
				
			}
		});
		
		
	
		
		
		
		
		
		janela.add(painel);
		
		
		janela.setSize(300, 200);
		
		janela.setLocationRelativeTo(null);
		janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		janela.setVisible(true);
		
	}

}

3 Respostas

Valkyrium

É meio estranho, mas use:

if (Integer.parseInt(b.toString()) > 17) {

...

}

Boa sorte! :D

igor_ks

Se vc quer ver o tanto de caracteres faça

s.length > 17

Segundo a documentacao da oracle:

int length()
Returns the length (character count).

fonte: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuilder.html

fabiocortolan

Pq vc precisa da StringBuilder para verificar um número digitado? Pq não usar diretamente uma variável int para receber o número?

Criado 6 de maio de 2013
Ultima resposta 7 de mai. de 2013
Respostas 3
Participantes 4