Wątek przeniesiony 2015-12-17 07:59 z Java przez bogdans.

Kalkulator - procentowanie

0

Witajcie,
mam problem z utworzeniem buttona "%" w javie. Mój kalkulator dzieli, mnoży, dodaje spoko pierwiastek też, ale nie moge ogarnąć procentu.
Czy uzyskam pomoc?

kod:

 
package kalkulatorDOM;

import java.awt.EventQueue;
import java.util.EventObject;

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

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.ObjectInputStream.GetField;

import javax.swing.JPanel;

public class alkokalko {

	private JFrame frame;
	private JTextField txtWyswietl;
	private double wynik1 = 0.0;
    private double wynik2 = 0.0;
    private double wynik3 = 0.0;
    private char znak;

    private void getOperator(String btnText){
        znak = btnText.charAt(0);
        wynik1 = wynik1 + Double.parseDouble(txtWyswietl.getText());
        txtWyswietl.setText("");
    }
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					alkokalko window = new alkokalko();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public alkokalko() 
	{
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setResizable(false);
		frame.setBounds(100, 100, 401, 337);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JPanel text = new JPanel();
		text.setBounds(11, 0, 384, 53);
		frame.getContentPane().add(text);
		text.setLayout(null);
		
		txtWyswietl = new JTextField();
		txtWyswietl.setBounds(10, 6, 298, 40);
		text.add(txtWyswietl);
		txtWyswietl.setColumns(10);
		
		JButton btnWyczysc = new JButton("C");
		btnWyczysc.setBounds(318, 6, 40, 40);
		text.add(btnWyczysc);
		btnWyczysc.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				wynik2 = 0;
				txtWyswietl.setText("");
				wynik3 = 0;
				txtWyswietl.setText("");
			}
		});
		
		JPanel liczby = new JPanel();
		liczby.setBounds(0, 52, 239, 257);
		frame.getContentPane().add(liczby);
		liczby.setLayout(null);
		
		JButton btnSiedem = new JButton("7");
		btnSiedem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) 
			{
			String btnSiedemTekst = txtWyswietl.getText() + btnSiedem.getText();
			txtWyswietl.setText( btnSiedemTekst );
			}
		});
		btnSiedem.setBounds(23, 5, 50, 50);
		liczby.add(btnSiedem);
		
		JButton btnOsiem = new JButton("8");
		btnOsiem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnOsiemTekst = txtWyswietl.getText() + btnOsiem.getText();
		        txtWyswietl.setText( btnOsiemTekst );
			}
		});
		btnOsiem.setBounds(83, 5, 50, 50);
		liczby.add(btnOsiem);
		
		JButton btnDziewięć = new JButton("9");
		btnDziewięć.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {String btnDziewięćTekst = txtWyswietl.getText() + btnDziewięć.getText();
	        txtWyswietl.setText( btnDziewięćTekst );
			}
		});
		btnDziewięć.setBounds(143, 5, 50, 50);
		liczby.add(btnDziewięć);
		
		JButton btnCztery = new JButton("4");
		btnCztery.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnCzteryTekst = txtWyswietl.getText() + btnCztery.getText();
		        txtWyswietl.setText( btnCzteryTekst );
			}
		});
		btnCztery.setBounds(23, 66, 50, 50);
		liczby.add(btnCztery);
		
		JButton btnPięć = new JButton("5");
		btnPięć.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				 String btnPięćTekst = txtWyswietl.getText() + btnPięć.getText();
			        txtWyswietl.setText( btnPięćTekst );
			}
		});
		btnPięć.setBounds(83, 66, 50, 50);
		liczby.add(btnPięć);
		
		JButton btnSześć = new JButton("6");
		btnSześć.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnSześćTekst = txtWyswietl.getText() + btnSześć.getText();
		        txtWyswietl.setText( btnSześćTekst );
			}
		});
		btnSześć.setBounds(143, 66, 50, 50);
		liczby.add(btnSześć);
		
		JButton btnJeden = new JButton("1");
		btnJeden.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnJedenTekst = txtWyswietl.getText() + btnJeden.getText();
		        txtWyswietl.setText(btnJedenTekst);
			}
		});
		btnJeden.setBounds(23, 127, 50, 50);
		liczby.add(btnJeden);
		
		JButton btnDwa = new JButton("2");
		btnDwa.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnDwaTekst = txtWyswietl.getText() + btnDwa.getText();
		        txtWyswietl.setText( btnDwaTekst );
			}
		});
		btnDwa.setBounds(83, 127, 50, 50);
		liczby.add(btnDwa);
		
		JButton btnTrzy = new JButton("3");
		btnTrzy.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnTrzyTekst = txtWyswietl.getText() + btnTrzy.getText();
		        txtWyswietl.setText( btnTrzyTekst );
			}
		});
		btnTrzy.setBounds(143, 127, 50, 50);
		liczby.add(btnTrzy);
		
		JButton btnPrzecinek = new JButton(",");
		btnPrzecinek.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String btnPrzecinekTekst = txtWyswietl.getText() + btnPrzecinek.getText();
		        txtWyswietl.setText( btnPrzecinekTekst );
			}
		});
		btnPrzecinek.setBounds(143, 188, 50, 50);
		liczby.add(btnPrzecinek);
		
		JButton btnZero = new JButton("0");
		btnZero.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) 
			{
				String btnZeroTekst = txtWyswietl.getText() + btnZero.getText();
		        txtWyswietl.setText( btnZeroTekst );
			}
		});
		btnZero.setBounds(23, 188, 110, 50);
		liczby.add(btnZero);
		
		JPanel funkcje = new JPanel();
		funkcje.setBounds(249, 52, 146, 257);
		frame.getContentPane().add(funkcje);
		funkcje.setLayout(null);
		
		JButton btnMnozenie = new JButton("*");
		btnMnozenie.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String tekst_przycisku = btnMnozenie.getText();
				getOperator(tekst_przycisku);
			}
		});
		btnMnozenie.setBounds(10, 5, 50, 50);
		funkcje.add(btnMnozenie);
		
		JButton btnDzielenie = new JButton("/");
		btnDzielenie.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String tekst_przycisku = btnDzielenie.getText();
				getOperator(tekst_przycisku);
			}
		});
		btnDzielenie.setBounds(70, 5, 50, 50);
		funkcje.add(btnDzielenie);
		
		JButton procent = new JButton("%");
		procent.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String tekst_przycisku = procent.getText();
				getOperator(tekst_przycisku);
			}
		});
		procent.setBounds(10, 188, 50, 50);
		funkcje.add(procent);
		
		JButton btnx = new JButton("1/x");
		btnx.setBounds(10, 127, 50, 50);
		funkcje.add(btnx);
		btnx.setToolTipText("");
		
		JButton btnMinus = new JButton("-");
		btnMinus.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String tekst_przycisku = btnMinus.getText();
				getOperator(tekst_przycisku);
			}
		});
		btnMinus.setBounds(10, 66, 50, 50);
		funkcje.add(btnMinus);
		
		JButton btnPlus = new JButton("+");
		btnPlus.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String tekst_przycisku = btnPlus.getText();
				getOperator(tekst_przycisku);
			}
		});
		btnPlus.setBounds(70, 66, 50, 50);
		funkcje.add(btnPlus);
		
		JButton pierw = new JButton("\u221A");
		pierw.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String tekst_przycisku = pierw.getText();
				getOperator(tekst_przycisku);
			}
		});
		pierw.setBounds(70, 127, 50, 50);
		funkcje.add(pierw);
		
		JButton btnWynik = new JButton("=");
		btnWynik.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				switch ( znak ) {
	            case '+':
	                wynik2 = wynik1 + Double.parseDouble(txtWyswietl.getText());
	            break;
	            case '-':
	                wynik2 = wynik1 - Double.parseDouble(txtWyswietl.getText());
	            break;
	            case '/':
	                wynik2 = wynik1 / Double.parseDouble(txtWyswietl.getText());
	            break;
	            case '*':
	                wynik2 = wynik1 * Double.parseDouble(txtWyswietl.getText());
	            break;
	            case '\u221A':
	            	wynik2 = Math.sqrt(wynik1);
	            break;
	            case '%':
	            	wynik3 = wynik2 / 100;
	            break;
	        }
			txtWyswietl.setText( Double.toString(wynik3));
	        txtWyswietl.setText( Double.toString(wynik2));
	        wynik1 = 0;
			}
		});
		btnWynik.setBounds(70, 188, 50, 50);
		funkcje.add(btnWynik);
	}
}

0

Nie używaj polskich liter w nazwach zmiennych.

                case '%':
                    wynik2 = Double.parseDouble(txtWyswietl.getText())*wynik1/100;
                break;
            }
            //txtWyswietl.setText( Double.toString(wynik3));
            txtWyswietl.setText( Double.toString(wynik2));

1 użytkowników online, w tym zalogowanych: 0, gości: 1