import java.awt.Color;
import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.math.BigDecimal;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class EsZamanliTextField {

	public EsZamanliTextField() {
		
		JFrame frame = new JFrame("102 Eş zamanlı JTextField Işlemi | Java Blackboard [102]");
		frame.setLayout(null);
		
		JPanel panel = new JPanel(); // Yesil renkli paneli olusturuyoruz.
		panel.setLayout(null);
		panel.setBackground(new Color(222, 254, 212)); // Renk kodu.
		panel.setBounds(50, 50, 400, 200);
		
		// Ubuntu fontu bilgisayarinizda yoksa
		// bu linkten free olarak indirevilirsiniz:
		// https://fonts.google.com/?query=Ubuntu
		Font font = new Font("Ubuntu", Font.BOLD, 27); 
		
		JLabel labelFiyat = new JLabel("Fiyat :");
		labelFiyat.setFont(font);
		labelFiyat.setHorizontalTextPosition(JLabel.RIGHT);
		labelFiyat.setBounds(50, 30, 90, 30);
		
		JTextField tfFiyat = new JTextField("0.00012500");
		tfFiyat.setFont(font);
		tfFiyat.setBounds(160, 30, 200, 30);
		
		JLabel labelAdet = new JLabel("Adet :");
		labelAdet.setFont(font);
		labelAdet.setHorizontalTextPosition(JLabel.RIGHT);
		labelAdet.setBounds(50, 80, 90, 30);
		
		JTextField tfAdet = new JTextField();
		tfAdet.setFont(font);
		tfAdet.setBounds(160, 80, 200, 30);
		
		JLabel labelTutar = new JLabel("Tutar :");
		labelTutar.setFont(font);
		labelTutar.setHorizontalTextPosition(JLabel.RIGHT);
		labelTutar.setBounds(50, 130, 90, 30);
		
		JTextField tfTutar = new JTextField("0.0");
		tfTutar.setFont(font);
		tfTutar.setBounds(160, 130, 200, 30);
		
		tfFiyat.addKeyListener(new KeyAdapter() {
			   public void keyReleased(KeyEvent e) {
			      double fiyat = 0, adet = 0, tutar = 0;
			      try {
			         fiyat = Double.parseDouble(tfFiyat.getText());
			      } catch (NumberFormatException ex) {
			         tfFiyat.setText("0.00012500");
			      }
			      try {
			         adet = Double.parseDouble(tfAdet.getText());
			      } catch (NumberFormatException ex) {
			         adet = 0;
			      }
			      tutar = fiyat * adet;
			      tfTutar.setText(String.valueOf(tutar));
			   }
			});

			tfAdet.addKeyListener(new KeyAdapter() {
			   public void keyReleased(KeyEvent e) {
			      double fiyat = 0, adet = 0, tutar = 0;
			      try {
			         fiyat = Double.parseDouble(tfFiyat.getText());
			      } catch (NumberFormatException ex) {
			         tfFiyat.setText("0.00012500");
			      }
			      try {
			         adet = Double.parseDouble(tfAdet.getText());
			      } catch (NumberFormatException ex) {
			         adet = 0;
			      }
			      tutar = fiyat * adet;
			      tfTutar.setText(String.valueOf(tutar));
			   }
			});

			tfTutar.addKeyListener(new KeyAdapter() {
			   public void keyReleased(KeyEvent e) {
			      double fiyat = 0, adet = 0, tutar = 0;
			      try {
			         fiyat = Double.parseDouble(tfFiyat.getText());
			      } catch (NumberFormatException ex) {
			         tfFiyat.setText("0.00012500");
			      }
			      try {
			         tutar = Double.parseDouble(tfTutar.getText());
			      } catch (NumberFormatException ex) {
			         tutar = 0;
			      }
			      adet = tutar / fiyat;
			      tfAdet.setText(String.valueOf(adet));
			   }
			});
		
		panel.add(labelFiyat);
		panel.add(tfFiyat);
		
		panel.add(labelAdet);
		panel.add(tfAdet);
		
		panel.add(labelTutar);
		panel.add(tfTutar);
		
		frame.add(panel);
		
		frame.setSize(500, 320);
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}

}
