import java.awt.*;
import java.applet.*;
import java.math.*;
import java.awt.event.*;

//Author:H.Hakan GENÇ - 2001-2002 - Turkiye
//GSM: +905052610452, E-mail:hasanhakangenc@hotmail.com

public class EbersMoll extends Applet
{	
	String baslik = new String("Kontrol Panelini Göster");
	KontrolPaneli kontrolPaneli;
	Button kontrolButon = new Button(baslik);
	KontrolDialog kontrol;
	Panel buton = new Panel();
	CizimAlani cizimAlani;
	String zeminRenk, onRenk;
	
	public void init(){
		zeminRenk = getParameter("zeminrenk");
		onRenk = getParameter("onrenk");
		
		if ((zeminRenk == null) ||
			(onRenk == null))
		{
			zeminRenk = "f0f0f0";
			onRenk = "000000";
		}
		
		setBackground(stringToColor(zeminRenk));
		setForeground(stringToColor(onRenk));
		
		cizimAlani = new CizimAlani(zeminRenk);
		setLayout(new BorderLayout(10,10));
		kontrolPaneli = new KontrolPaneli(zeminRenk);
		
		kontrolButon.setFont(new Font("Courier",Font.BOLD,14));
		kontrolButon.setBackground(Color.decode("#ffffd0"));
		kontrolButon.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent olay){
				Point konum = EbersMoll.this.getLocationOnScreen();
				if(kontrol == null) {
					kontrol = new KontrolDialog(kontrolPaneli,"Kontrol Paneli");
					kontrol.addWindowListener(new WindowAdapter(){
						public void windowClosing(WindowEvent olay){
							kontrolButon.setLabel("Kontrol Panelini Göster");
							kontrol.dispose();
							kontrol = null;
							showStatus("Kontrol Paneli Kapatıldı");
						}
					});
					kontrolButon.setLabel("Kontrol Panelini Gizle");
					kontrol.setLocation(konum.x, konum.y);
					kontrol.show();
					kontrol.pack();
					kontrol.setResizable(true);
					showStatus("Kontrol Paneli Açıldı");
				}
				else if(kontrol != null){
					kontrolButon.setLabel("Kontrol Panelini Göster");
					kontrol.dispose();
					kontrol = null;
				}
			}
		});
		buton.setLayout(new FlowLayout(FlowLayout.CENTER));
		buton.add(kontrolButon);
		add(cizimAlani,"North");
		add(buton,"South");
		//	add(kontrolPaneli,"Center");
	}
	
	private Color stringToColor(String paramDeger)
	{
		int red;
		int green;
		int blue;

		red = (Integer.decode("0x" + paramDeger.substring(0,2))).intValue();
		green = (Integer.decode("0x" + paramDeger.substring(2,4))).intValue();
		blue = (Integer.decode("0x" + paramDeger.substring(4,6))).intValue();

		return new Color(red,green,blue);
	}
}

class CerceveliPanel extends Panel{
	public CerceveliPanel(){
		setBackground(Color.red);
	}
	public Insets getInsets(){
		return new Insets(0,0,0,0);
	}
	
	public Dimension getPreferredSize(){
		return new Dimension(600,450);
	}
}
class KontrolPaneli extends Panel{
	Temizle temizle;
	Temizle2 temizle2;
	Slider slider;
	Slider2 slider2;
	String baslik="BJT Model Parametreleri";
	String baslik2="Dış Değişken Parametreleri";
	Panel panel1, panel2;
	int genislik, yukseklik;
	public KontrolPaneli(String renk){
		setBackground(Color.white);
		setLayout(new BorderLayout());
		
		slider = new Slider();
		slider2 = new Slider2();
		temizle = new Temizle(slider);
		temizle2 = new Temizle2(slider2);
		
		panel1 = new Panel();
		panel2 = new Panel();
		
		panel1.setLayout(new BorderLayout());
		panel2.setLayout(new BorderLayout());
		
		panel1.add(slider,"North");
		panel1.add(temizle,"South");
		
		panel2.add(slider2,"North");
		panel2.add(temizle2,"South");
		
		add(panel1,"North");
		add(panel2,"South");
	}
	public Insets getInsets(){
		return new Insets(25,10,0,10);
	}
	
	public void paint(Graphics g){
		genislik = this.getSize().width;
		yukseklik = this.getSize().height;
		
		g.setFont(new Font("Courier",Font.BOLD,12));
		FontMetrics fm = g.getFontMetrics();
		g.drawString(baslik,(genislik-fm.stringWidth(baslik))/2,15);
		g.drawLine(10,10,(genislik-fm.stringWidth(baslik))/2-5,10);
		g.drawLine((genislik-fm.stringWidth(baslik))/2+fm.stringWidth(baslik)+5,10,genislik-10,10);
		g.drawLine(10,12,(genislik-fm.stringWidth(baslik))/2-5,12);
		g.drawLine((genislik-fm.stringWidth(baslik))/2+fm.stringWidth(baslik)+5,12,genislik-10,12);
		g.drawString(baslik2,(genislik-fm.stringWidth(baslik2))/2,435);
		g.drawLine(10,430,(genislik-fm.stringWidth(baslik2))/2-5,430);
		g.drawLine((genislik-fm.stringWidth(baslik2))/2+fm.stringWidth(baslik2)+5,430,genislik-10,430);
		g.drawLine(10,432,(genislik-fm.stringWidth(baslik2))/2-5,432);
		g.drawLine((genislik-fm.stringWidth(baslik2))/2+fm.stringWidth(baslik2)+5,432,genislik-10,432);
	}
	public Dimension getPreferredSize(){
		return new Dimension(550,600);
	}
}

class Slider extends Panel implements AdjustmentListener{
	int saturasyon, betaF, betaR, bazD, kollektorD, emetorD,
		CJE, VJE, CJC, VJC, CJS, VJS, TF, TR;
	Scrollbar saturasyonCubugu, betaForward, betaReverse, bazDirenci, kollektorDirenci, emetorDirenci,
		CJEScroll, VJEScroll, CJCScroll, VJCScroll, CJSScroll, VJSScroll, TFScroll, TRScroll;
	
	Label saturasyonEtiketi, betaF_Etiketi, betaR_Etiketi,bazEtiketi, kollektorEtiketi, emetorEtiketi,
		CJE_Etiketi, VJE_Etiketi, CJC_Etiketi, VJC_Etiketi, CJS_Etiketi, VJS_Etiketi, TF_Etiketi, TR_Etiketi;
	
	Panel hepsi = new Panel();
	Label isimBaslik = new Label("İsim");
	Label parametreBaslik = new Label("Parametre");
	Label birimBaslik = new Label("Birim");
	Label degerBaslik = new Label("Değer");

	public Slider(){
		setBackground(Color.white);
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		hepsi.setLayout(gbl);
		setLayout(new BorderLayout());
		
		saturasyonCubugu = new Scrollbar(Scrollbar.HORIZONTAL,1,1,1,11);
		betaForward = new Scrollbar(Scrollbar.HORIZONTAL,50,5,100,205);
		betaReverse = new Scrollbar(Scrollbar.HORIZONTAL,1,1,10,21);
		bazDirenci = new Scrollbar(Scrollbar.HORIZONTAL,0,5,0,205);
		kollektorDirenci = new Scrollbar(Scrollbar.HORIZONTAL,0,5,0,105);
		emetorDirenci = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,11);
		CJEScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,11);
		VJEScroll = new Scrollbar(Scrollbar.HORIZONTAL,60,2,75,82);
		CJCScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,11);
		VJCScroll = new Scrollbar(Scrollbar.HORIZONTAL,60,2,75,82);
		CJSScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,11);
		VJSScroll = new Scrollbar(Scrollbar.HORIZONTAL,60,2,75,82);
		TFScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,21);
		TRScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,21);
	
		saturasyonEtiketi	= new Label("1.0E-16  ");
		betaF_Etiketi		= new Label("100      ");
		betaR_Etiketi		= new Label("1.0      ");
		bazEtiketi			= new Label("0        ");
		kollektorEtiketi	= new Label("0        ");
		emetorEtiketi		= new Label("0        ");
		CJE_Etiketi			= new Label("0.0      ");
		VJE_Etiketi			= new Label("0.75     ");
		CJC_Etiketi			= new Label("0.0      ");
		VJC_Etiketi			= new Label("0.75     ");
		CJS_Etiketi			= new Label("0.0      ");
		VJS_Etiketi			= new Label("0.75     ");
		TF_Etiketi			= new Label("0.0      ");
		TR_Etiketi			= new Label("0.0      ");
		
		isimBaslik.setFont(new Font("Courier",Font.BOLD + Font.ITALIC,12));
		parametreBaslik.setFont(new Font("Courier",Font.BOLD + Font.ITALIC,12));
		birimBaslik.setFont(new Font("Courier",Font.BOLD + Font.ITALIC,12));
		degerBaslik.setFont(new Font("Courier",Font.BOLD + Font.ITALIC,12));
		
		isimBaslik.setForeground(Color.red);
		parametreBaslik.setForeground(Color.red);
		birimBaslik.setForeground(Color.red);
		degerBaslik.setForeground(Color.red);
		
		saturasyonEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		betaR_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		betaF_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		bazEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		kollektorEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		emetorEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		CJE_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		VJE_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		CJC_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		VJC_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		CJS_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		VJS_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		TF_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		TR_Etiketi.setFont(new Font("Courier",Font.BOLD,12));
		
		gbc.anchor = GridBagConstraints.WEST;
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbc.gridwidth = 1;
		gbc.weightx = 0.0;
		hepsi.add(isimBaslik, gbc);
		gbc.gridy = 1;
		hepsi.add(new Label("IS"), gbc);
		gbc.gridy = 2;
		hepsi.add(new Label("BF"), gbc);
		gbc.gridy = 3;
		hepsi.add(new Label("BR"), gbc);
		gbc.gridy = 4;
		hepsi.add(new Label("RB"), gbc);
		gbc.gridy = 5;
		hepsi.add(new Label("RC"), gbc);
		gbc.gridy = 6;
		hepsi.add(new Label("RE"), gbc);
		gbc.gridy = 7;
		hepsi.add(new Label("CJE"), gbc);
		gbc.gridy = 8;
		hepsi.add(new Label("VJE"), gbc);
		gbc.gridy = 9;
		hepsi.add(new Label("CJC"), gbc);
		gbc.gridy = 10;
		hepsi.add(new Label("VJC"), gbc);
		gbc.gridy = 11;
		hepsi.add(new Label("CJS"), gbc);
		gbc.gridy = 12;
		hepsi.add(new Label("VJS"), gbc);
		gbc.gridy = 13;
		hepsi.add(new Label("TF"), gbc);
		gbc.gridy = 14;
		hepsi.add(new Label("TR"), gbc);
		
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbc.weightx = 0.0;
		hepsi.add(parametreBaslik, gbc);
		gbc.gridy = 1;
		hepsi.add(new Label("Saturasyon akımı"), gbc);
		gbc.gridy = 2;
		hepsi.add(new Label("İleri akım kazancı"), gbc);
		gbc.gridy = 3;
		hepsi.add(new Label("Ters akım kazancı"), gbc);
		gbc.gridy = 4;
		hepsi.add(new Label("Baz direnci"), gbc);
		gbc.gridy = 5;
		hepsi.add(new Label("Kollektor direnci"), gbc);
		gbc.gridy = 6;
		hepsi.add(new Label("Emetör direnci"), gbc);
		gbc.gridy = 7;
		hepsi.add(new Label("B-E zero-bias geçiş bölgesi kapasitansı"), gbc);
		gbc.gridy = 8;
		hepsi.add(new Label("B-E built-in gerilimi"), gbc);
		gbc.gridy = 9;
		hepsi.add(new Label("B-C zero-bias geçiş bölsegi kapasitansı"), gbc);
		gbc.gridy = 10;
		hepsi.add(new Label("B-C built-in gerilimi"), gbc);
		gbc.gridy = 11;
		hepsi.add(new Label("Zero-bias kollektor-tabakası kapasitansı"), gbc);
		gbc.gridy = 12;
		hepsi.add(new Label("Tabaka birleşim yüzeyi built-in gerilimi"), gbc);
		gbc.gridy = 13;
		hepsi.add(new Label("İleri geçiş süresi"), gbc);
		gbc.gridy = 14;
		hepsi.add(new Label("Geri geçiş süresi"), gbc);
		
		gbc.gridx = 2;
		gbc.gridy = 0;
		gbc.weightx = 0.0;
		hepsi.add(birimBaslik, gbc);
		gbc.gridy = 1;
		hepsi.add(new Label("A"), gbc);
		gbc.gridy = 2;
		hepsi.add(new Label(" "), gbc);
		gbc.gridy = 3;
		hepsi.add(new Label(" "), gbc);
		gbc.gridy = 4;
		hepsi.add(new Label("ohm"), gbc);
		gbc.gridy = 5;
		hepsi.add(new Label("ohm"), gbc);
		gbc.gridy = 6;
		hepsi.add(new Label("ohm"), gbc);
		gbc.gridy = 7;
		hepsi.add(new Label("F"), gbc);
		gbc.gridy = 8;
		hepsi.add(new Label("V"), gbc);
		gbc.gridy = 9;
		hepsi.add(new Label("F"), gbc);
		gbc.gridy = 10;
		hepsi.add(new Label("V"), gbc);
		gbc.gridy = 11;
		hepsi.add(new Label("F"), gbc);
		gbc.gridy = 12;
		hepsi.add(new Label("V"), gbc);
		gbc.gridy = 13;
		hepsi.add(new Label("s"), gbc);
		gbc.gridy = 14;
		hepsi.add(new Label("s"), gbc);
		
		gbc.gridx = 3;
		gbc.gridy = 0;
		hepsi.add(degerBaslik, gbc);
		gbc.gridy = 1;
		hepsi.add(saturasyonEtiketi, gbc);
		gbc.gridy = 2;
		hepsi.add(betaF_Etiketi, gbc);
		gbc.gridy = 3;
		hepsi.add(betaR_Etiketi, gbc);
		gbc.gridy = 4;
		hepsi.add(bazEtiketi, gbc);
		gbc.gridy = 5;
		hepsi.add(kollektorEtiketi, gbc);
		gbc.gridy = 6;
		hepsi.add(emetorEtiketi, gbc);
		gbc.gridy = 7;
		hepsi.add(CJE_Etiketi, gbc);
		gbc.gridy = 8;
		hepsi.add(VJE_Etiketi, gbc);
		gbc.gridy = 9;
		hepsi.add(CJC_Etiketi, gbc);
		gbc.gridy = 10;
		hepsi.add(VJC_Etiketi, gbc);
		gbc.gridy = 11;
		hepsi.add(CJS_Etiketi, gbc);
		gbc.gridy = 12;
		hepsi.add(VJS_Etiketi, gbc);
		gbc.gridy = 13;
		hepsi.add(TF_Etiketi, gbc);
		gbc.gridy = 14;
		hepsi.add(TR_Etiketi, gbc);
		
		gbc.gridx = 4;
		gbc.gridy = 1;
		gbc.fill = GridBagConstraints.BOTH;
		gbc.gridwidth = GridBagConstraints.RELATIVE;
		gbc.weightx = 0.1;
		hepsi.add(saturasyonCubugu, gbc);
		gbc.gridy = 2;
		hepsi.add(betaForward, gbc);
		gbc.gridy = 3;
		hepsi.add(betaReverse, gbc);
		gbc.gridy = 4;
		hepsi.add(bazDirenci, gbc);
		gbc.gridy = 5;
		hepsi.add(kollektorDirenci, gbc);
		gbc.gridy = 6;
		hepsi.add(emetorDirenci, gbc);
		gbc.gridy = 7;
		hepsi.add(CJEScroll, gbc);
		gbc.gridy = 8;
		hepsi.add(VJEScroll, gbc);
		gbc.gridy = 9;
		hepsi.add(CJCScroll, gbc);
		gbc.gridy = 10;
		hepsi.add(VJCScroll, gbc);
		gbc.gridy = 11;
		hepsi.add(CJSScroll, gbc);
		gbc.gridy = 12;
		hepsi.add(VJSScroll, gbc);
		gbc.gridy = 13;
		hepsi.add(TFScroll, gbc);
		gbc.gridy = 14;
		hepsi.add(TRScroll, gbc);
		
		add(hepsi,"North");
		saturasyonCubugu.addAdjustmentListener(this);
		betaForward.addAdjustmentListener(this);
		betaReverse.addAdjustmentListener(this);
		bazDirenci.addAdjustmentListener(this);
		kollektorDirenci.addAdjustmentListener(this);
		emetorDirenci.addAdjustmentListener(this);
		CJEScroll.addAdjustmentListener(this);
		VJEScroll.addAdjustmentListener(this);
		CJCScroll.addAdjustmentListener(this);
		VJCScroll.addAdjustmentListener(this);
		CJSScroll.addAdjustmentListener(this);
		VJSScroll.addAdjustmentListener(this);
		TFScroll.addAdjustmentListener(this);
		TRScroll.addAdjustmentListener(this);
		
		saturasyonCubugu.setBlockIncrement(1);
		saturasyonCubugu.setUnitIncrement(1);
		saturasyonCubugu.setMaximum(11);
		saturasyonCubugu.setMinimum(1);
	
		betaForward.setBlockIncrement(5);
		betaForward.setUnitIncrement(5);
		betaForward.setMaximum(205);
		betaForward.setMinimum(50);
	
		betaReverse.setBlockIncrement(1);
		betaReverse.setUnitIncrement(1);
		betaReverse.setMaximum(21);
		betaReverse.setMinimum(1);
		
		bazDirenci.setBlockIncrement(5);
		bazDirenci.setUnitIncrement(5);
		bazDirenci.setMaximum(205);
		bazDirenci.setMinimum(0);
		
		kollektorDirenci.setBlockIncrement(5);
		kollektorDirenci.setUnitIncrement(5);
		kollektorDirenci.setMaximum(105);
		kollektorDirenci.setMinimum(0);
		
		emetorDirenci.setBlockIncrement(1);
		emetorDirenci.setUnitIncrement(1);
		emetorDirenci.setMaximum(11);
		emetorDirenci.setMinimum(0);
		
		CJEScroll.setBlockIncrement(1);
		CJEScroll.setUnitIncrement(1);
		CJEScroll.setMaximum(11);
		CJEScroll.setMinimum(0);
		
		VJEScroll.setBlockIncrement(2);
		VJEScroll.setUnitIncrement(2);
		VJEScroll.setMaximum(82);
		VJEScroll.setMinimum(60);
		
		CJCScroll.setBlockIncrement(1);
		CJCScroll.setUnitIncrement(1);
		CJCScroll.setMaximum(11);
		CJCScroll.setMinimum(0);
		
		VJCScroll.setBlockIncrement(2);
		VJCScroll.setUnitIncrement(2);
		VJCScroll.setMaximum(82);
		VJCScroll.setMinimum(60);
		
		CJSScroll.setBlockIncrement(1);
		CJSScroll.setUnitIncrement(1);
		CJSScroll.setMaximum(11);
		CJSScroll.setMinimum(0);
		
		VJSScroll.setBlockIncrement(2);
		VJSScroll.setUnitIncrement(2);
		VJSScroll.setMaximum(82);
		VJSScroll.setMinimum(60);
		
		TFScroll.setBlockIncrement(1);
		TFScroll.setUnitIncrement(1);
		TFScroll.setMaximum(21);
		TFScroll.setMinimum(0);
		
		TRScroll.setBlockIncrement(1);
		TRScroll.setUnitIncrement(1);
		TRScroll.setMaximum(21);
		TRScroll.setMinimum(0);
		
	}
	
	public void guncelle(boolean temizle){
		if(temizle){
			saturasyonCubugu.setValue(1);
			betaForward.setValue(100);
			betaReverse.setValue(10);
			bazDirenci.setValue(0);
			kollektorDirenci.setValue(0);
			emetorDirenci.setValue(0);
			CJEScroll.setValue(0);
			VJEScroll.setValue(75);
			CJCScroll.setValue(0);
			VJCScroll.setValue(75);
			CJSScroll.setValue(0);
			VJSScroll.setValue(75);
			TFScroll.setValue(0);
			TRScroll.setValue(0);
			saturasyon = saturasyonCubugu.getValue();
			saturasyonEtiketi.setText(Double.toString(saturasyon*(1E-16)));
			betaF = betaForward.getValue();
			betaF_Etiketi.setText(Integer.toString(betaF));
			betaR = betaReverse.getValue();
			betaR_Etiketi.setText(Double.toString((double)betaR/10));
			bazD = bazDirenci.getValue();
			bazEtiketi.setText(Integer.toString(bazD));
			kollektorD = kollektorDirenci.getValue();
			kollektorEtiketi.setText(Integer.toString(kollektorD));
			emetorD = emetorDirenci.getValue();
			emetorEtiketi.setText(Integer.toString(emetorD));
			CJE = CJEScroll.getValue();
			CJE_Etiketi.setText(Double.toString(CJE*(1.0E-13)));
			VJE = VJEScroll.getValue();
			VJE_Etiketi.setText(Double.toString((double)VJE/100));
			CJC = CJCScroll.getValue();
			CJC_Etiketi.setText(Double.toString(CJC*(0.5E-13)));
			VJC = VJCScroll.getValue();
			VJC_Etiketi.setText(Double.toString((double)VJC/100));
			CJS = CJSScroll.getValue();
			CJS_Etiketi.setText(Double.toString(CJS*(3.0E-22)));
			VJS = VJSScroll.getValue();
			VJS_Etiketi.setText(Double.toString((double)VJS/100));
			TF = TFScroll.getValue();
			TF_Etiketi.setText(Double.toString(TF*(1.0E-11)));
			TR = TRScroll.getValue();
			TR_Etiketi.setText(Double.toString(TR*(1.0E-9)));
		}
	}
	
	public void adjustmentValueChanged(AdjustmentEvent olay){
		saturasyon = saturasyonCubugu.getValue();
		saturasyonEtiketi.setText(Double.toString(saturasyon*(1E-16)));
		betaF = betaForward.getValue();
		betaF_Etiketi.setText(Integer.toString(betaF));
		betaR = betaReverse.getValue();
		betaR_Etiketi.setText(Double.toString((double)betaR/10));
		bazD = bazDirenci.getValue();
		bazEtiketi.setText(Integer.toString(bazD));
		kollektorD = kollektorDirenci.getValue();
		kollektorEtiketi.setText(Integer.toString(kollektorD));
		emetorD = emetorDirenci.getValue();
		emetorEtiketi.setText(Integer.toString(emetorD));
		CJE = CJEScroll.getValue();
		CJE_Etiketi.setText(Double.toString(CJE*(1.0E-13)));
		VJE = VJEScroll.getValue();
		VJE_Etiketi.setText(Double.toString((double)VJE/100));
		CJC = CJCScroll.getValue();
		CJC_Etiketi.setText(Double.toString(CJC*(0.5E-13)));
		VJC = VJCScroll.getValue();
		VJC_Etiketi.setText(Double.toString((double)VJC/100));
		CJS = CJSScroll.getValue();
		CJS_Etiketi.setText(Double.toString(CJS*(3.0E-22)));
		VJS = VJSScroll.getValue();
		VJS_Etiketi.setText(Double.toString((double)VJS/100));
		TF = TFScroll.getValue();
		TF_Etiketi.setText(Double.toString(TF*(1.0E-11)));
		TR = TRScroll.getValue();
		TR_Etiketi.setText(Double.toString(TR*(1.0E-9)));
	}
}

class Slider2 extends Panel implements AdjustmentListener{
	int VB, VC, RB, ortam_isisi;
	double RC;
	Scrollbar VBScroll, VCScroll, RBScroll, RCScroll, sicaklik;
	Label VBEtiketi, VCEtiketi, RBEtiketi, RCEtiketi, sicaklikEtiketi;
	
	Panel panel1, panel2, panel3, panel4, panel5;
	public Slider2(){
		setLayout(new GridLayout(5,1));
		
		panel1 = new Panel();
		panel2 = new Panel();
		panel3 = new Panel();
		panel4 = new Panel();
		panel5 = new Panel();
		
		panel1.setLayout(new GridLayout(1,3));
		panel2.setLayout(new GridLayout(1,3));
		panel3.setLayout(new GridLayout(1,3));
		panel4.setLayout(new GridLayout(1,3));
		panel5.setLayout(new GridLayout(1,3));
		
		VBEtiketi = new Label("0");
		VCEtiketi = new Label("0");
		RBEtiketi = new Label("10");
		RCEtiketi = new Label("1.0");
		sicaklikEtiketi = new Label("25°");
		
		VBEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		VCEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		RBEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		RCEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		sicaklikEtiketi.setFont(new Font("Courier",Font.BOLD,12));
		
		VBScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,6);
		VCScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,6);
		RBScroll = new Scrollbar(Scrollbar.HORIZONTAL,10,10,10,210);
		RCScroll = new Scrollbar(Scrollbar.HORIZONTAL,1,1,10,51);
		sicaklik = new Scrollbar(Scrollbar.HORIZONTAL,0,5,25,100);
		
		panel1.add(new Label("VB (V)    =   "));
		panel1.add(VBEtiketi);
		panel1.add(VBScroll);
		
		panel2.add(new Label("VC (V)    =   "));
		panel2.add(VCEtiketi);
		panel2.add(VCScroll);
		
		panel3.add(new Label("RB (kohm) =   "));
		panel3.add(RBEtiketi);
		panel3.add(RBScroll);
		
		panel4.add(new Label("RC (kohm) =   "));
		panel4.add(RCEtiketi);
		panel4.add(RCScroll);
		
		panel5.add(new Label("Ortam Sıcaklığı (°C)"));
		panel5.add(sicaklikEtiketi);
		panel5.add(sicaklik);
		
		add(panel1);
		add(panel2);
		add(panel3);
		add(panel4);
		add(panel5);
		
		VBScroll.addAdjustmentListener(this);
		VCScroll.addAdjustmentListener(this);
		RBScroll.addAdjustmentListener(this);
		RCScroll.addAdjustmentListener(this);
		sicaklik.addAdjustmentListener(this);
		
		VBScroll.setBlockIncrement(1);
		VBScroll.setUnitIncrement(1);
		VBScroll.setMaximum(6);
		VBScroll.setMinimum(0);
		
		VCScroll.setBlockIncrement(1);
		VCScroll.setUnitIncrement(1);
		VCScroll.setMaximum(6);
		VCScroll.setMinimum(0);
		
		RBScroll.setBlockIncrement(10);
		RBScroll.setUnitIncrement(10);
		RBScroll.setMaximum(210);
		RBScroll.setMinimum(10);
		
		RCScroll.setBlockIncrement(10);
		RCScroll.setUnitIncrement(10);
		RCScroll.setMaximum(51);
		RCScroll.setMinimum(1);
		
		sicaklik.setBlockIncrement(5);
		sicaklik.setUnitIncrement(5);
		sicaklik.setMaximum(100);
		sicaklik.setMinimum(0);
		sicaklik.setVisibleAmount(25);
	}
	
	public void guncelle(boolean temizle){
		if(temizle){
			VBScroll.setValue(0);
			VCScroll.setValue(0);
			RBScroll.setValue(10);
			RCScroll.setValue(10);
			sicaklik.setValue(25);
			VB = VBScroll.getValue();
			VBEtiketi.setText(Integer.toString(VB));
			VC = VCScroll.getValue();
			VCEtiketi.setText(Integer.toString(VC));
			RB = RBScroll.getValue();
			RBEtiketi.setText(Integer.toString(RB));
			RC = (double)RCScroll.getValue();
			RCEtiketi.setText(Double.toString(RC/10));
			ortam_isisi = sicaklik.getValue();
			sicaklikEtiketi.setText(Integer.toString(ortam_isisi)+"°");
		}
	}
	
	public void adjustmentValueChanged(AdjustmentEvent olay){
		VB = VBScroll.getValue();
		VBEtiketi.setText(Integer.toString(VB));
		VC = VCScroll.getValue();
		VCEtiketi.setText(Integer.toString(VC));
		RB = RBScroll.getValue();
		RBEtiketi.setText(Integer.toString(RB));
		RC = (double)RCScroll.getValue();
		RCEtiketi.setText(Double.toString(RC/10));
		ortam_isisi = sicaklik.getValue();
		sicaklikEtiketi.setText(Integer.toString(ortam_isisi)+"°");
		
	}
}

class KontrolDialog extends Frame{
	CerceveliPanel panel = new CerceveliPanel();
	private KontrolPaneli kontrolPaneli;
//	ScrollPane scroller = new ScrollPane();
	public KontrolDialog(KontrolPaneli kontrolPaneli, String baslik) {
		this.kontrolPaneli=kontrolPaneli;
		setTitle(baslik);
		setLayout(new FlowLayout(FlowLayout.LEFT));
	//	panel.setLayout(new BorderLayout());
	//	scroller.add(kontrolPaneli,0);
	//	panel.add(scroller,"Center");
	//  add(panel);
		add(kontrolPaneli);
	}
	static Frame getFrame(Component c) {
		Frame     frame = null;

        while((c = c.getParent()) != null) {
            if(c instanceof Frame)
                frame = (Frame)c;
        }
        return frame;
    }
}

class Temizle extends Panel implements ActionListener{
	private Slider slider;
	boolean temizle = false;
	Button temizleButon = new Button("T e m i z l e");
	public Temizle(Slider slider){
		setLayout(new FlowLayout(FlowLayout.CENTER));
		setBackground(Color.white);
		this.slider = slider;
		temizleButon.setFont(new Font("Courier",Font.BOLD,12));
		temizleButon.addActionListener(this);	
		add(temizleButon);
	}
	
	public void actionPerformed(ActionEvent olay){
		temizle = true;
		slider.guncelle(temizle);
	}
	
}

class Temizle2 extends Panel implements ActionListener{
	private Slider2 slider2;
	boolean temizle = false;
	Button temizleButon = new Button("T e m i z l e");
	public Temizle2(Slider2 slider2){
		setLayout(new FlowLayout(FlowLayout.CENTER));
		setBackground(Color.white);
		this.slider2 = slider2;
		temizleButon.setFont(new Font("Courier",Font.BOLD,12));
		temizleButon.addActionListener(this);	
		add(temizleButon);
	}
	
	public void actionPerformed(ActionEvent olay){
		temizle = true;
		slider2.guncelle(temizle);
	}	
}

class CizimAlani extends Canvas{
	String renk;
	public CizimAlani(String renk){
		this.renk=renk;
		setBackground(Color.decode("#"+renk));
	}
	
	public Dimension getPreferredSize(){
		return new Dimension(250,250);
	}
}