//KLASA DO TWORZENIA OKNA import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JRadioButton; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.JList; import javax.swing.JMenuItem; import java.awt.List; import javax.swing.JMenu; import java.awt.Choice; import javax.swing.JComboBox; import javax.swing.SwingConstants; import java.awt.Color; import java.awt.Font; public class Kalkulator extends JFrame implements ActionListener { private JTextField tdane,twynik; //private Choice mm,cm,dm,m,km,Ar,Ha,dkg,g,kg,Tona,mm3,kg3,ml,l; private JComboBox we,wy; double dane,wynik; private JButton btnPrzelicz,btnWyjście; private JCheckBox jkwadrat; public Kalkulator() { setResizable(false); setSize(400,250); setLocation(600,300); setTitle("Kalkulator podstawowych jednostek SI"); getContentPane().setLayout(null); JLabel lblWynik = new JLabel("Wynik:"); lblWynik.setBounds(10, 112, 46, 14); getContentPane().add(lblWynik); JLabel lblWprowadzoneDane = new JLabel("Wprowadzone Dane:"); lblWprowadzoneDane.setBounds(10, 11, 129, 14); getContentPane().add(lblWprowadzoneDane); JLabel lblJednostkaDanychWejciowych = new JLabel("Jednostka"); lblJednostkaDanychWejciowych.setBounds(281, 11, 171, 14); getContentPane().add(lblJednostkaDanychWejciowych); JLabel lblJednostkaWyniku = new JLabel("Jednostka wyniku"); lblJednostkaWyniku.setBounds(281, 112, 151, 14); getContentPane().add(lblJednostkaWyniku); btnPrzelicz = new JButton("Przelicz"); btnPrzelicz.setBounds(10, 166, 89, 23); getContentPane().add(btnPrzelicz); btnPrzelicz.addActionListener(this); JLabel lblVerB = new JLabel("ver. b2.0.5"); lblVerB.setFont(new Font("Tahoma", Font.BOLD, 11)); lblVerB.setForeground(new Color(0, 0, 0)); lblVerB.setHorizontalAlignment(SwingConstants.CENTER); lblVerB.setBounds(311, 182, 69, 14); getContentPane().add(lblVerB); btnWyjście = new JButton("Wyjście"); btnWyjście.setBounds(109, 166, 89, 23); getContentPane().add(btnWyjście); btnWyjście.addActionListener(this); tdane = new JTextField(); tdane.setToolTipText("Podaj watro\u015B\u0107 liczby do przeliczenia przecinek zast\u0105p kropk\u0105"); tdane.setBounds(10, 33, 261, 23); getContentPane().add(tdane); tdane.setColumns(10); tdane.addActionListener(this); twynik = new JTextField(); twynik.setToolTipText("Tutaj otrzymasz wynik przeliczenia"); twynik.setBounds(10, 132, 261, 23); getContentPane().add(twynik); twynik.setColumns(10); we = new JComboBox(); we.setToolTipText("Wybierz jednostk\u0119"); we.setBounds(281, 31, 99, 25); getContentPane().add(we); we.addItem("mm"); we.addItem("cm"); we.addItem("dm"); we.addItem("m"); we.addItem("km"); we.addItem("Ar"); we.addItem("Ha"); we.addItem("g"); we.addItem("dkg"); we.addItem("kg"); we.addItem("Tona"); //we.addItem("mm3"); //we.addItem("ml"); //we.addItem("l"); //we.addItem("kg3"); we.addActionListener(this); wy = new JComboBox(); wy.setToolTipText("Wybierz jednostk\u0119 wyniku"); wy.setBounds(281, 132, 99, 23); getContentPane().add(wy); wy.addItem("mm"); wy.addItem("cm"); wy.addItem("dm"); wy.addItem("m"); wy.addItem("km"); wy.addItem("Ar"); wy.addItem("Ha"); wy.addItem("g"); wy.addItem("dkg"); wy.addItem("kg"); wy.addItem("Tona"); jkwadrat = new JCheckBox("Jednostki kwadratowe"); jkwadrat.setToolTipText("Zaznacz je\u015Bli chcesz korzysta\u0107 z jednostek kwadratowych"); jkwadrat.setBounds(20, 65, 171, 23); getContentPane().add(jkwadrat); jkwadrat.addActionListener(this); //wy.addItem("mm3"); //wy.addItem("ml"); //wy.addItem("l"); //wy.addItem("kg3"); wy.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { Object s = e.getSource(); String rozwiazanie; if (s == btnPrzelicz || s == tdane || s == we || s == wy) { String jd = (String) we.getSelectedItem(); String jw = (String) wy.getSelectedItem(); double dane = Double.parseDouble(tdane.getText()); Rozwiaz rownanie = new Rozwiaz(jd,jw,dane); if (jkwadrat.isSelected() == true) { rozwiazanie = rownanie.rozwiaz2().toString(); } else { rozwiazanie = rownanie.rozwiaz().toString(); } twynik.setText(rozwiazanie); } else if (s == btnWyjście) { dispose(); } } public static void main(String[] args) { Kalkulator kalkulator = new Kalkulator(); kalkulator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); kalkulator.setVisible(true); } } //KLASA PRZELICZAJĄCA import static java.lang.Math.pow; import static java.lang.Math.round; import java.math.BigDecimal; import java.math.BigInteger; import javax.swing.JOptionPane; public class Rozwiaz { double dane,wynik,cos; String jd,jw; public Rozwiaz(String jd, String jw, double dane) { this.dane = dane; this.jw = jw; this.jd = jd; } public String rozwiaz() { String swynik = ""; if(jd.equals(jw)) { swynik = "" + dane ; } else if (jd.equals("mm")) { if (jw.equals("cm") ) { dane = dane * 0.1; swynik = String.format("%.7f", + dane); } else if (jw.equals("dm") ) { dane = dane * 0.01; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("m")) { dane = dane * 0.001; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("km")) { dane = dane * pow(10, -6); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("cm") ) { if (jw.equals("mm")) { dane = dane * 10; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * 0.1; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("m") ) { dane = dane * 0.01; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("km") ) { dane = dane * pow(10, -5); swynik = String.format("%.7f", + dane) ; } } else if (jd.equals("dm") ) { if (jw.equals("mm") ) { dane = dane * 100; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("cm") ) { dane = dane * 10; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("m") ) { dane = dane * 0.1; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("km")) { dane = dane * pow(10, -4); swynik = String.format("%.7f", + dane) ; } } else if (jd.equals("m") ) { if (jw.equals("mm")) { dane = dane * 1000; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * 10; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("cm")) { dane = dane * 100; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("km")) { dane = dane * 0.001; swynik = String.format("%.7f", + dane) ; } } else if (jd.equals("km") ) { if (jw.equals("mm") ) { dane = dane * pow(10 ,6); swynik = String.format("%.7f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * pow(10 ,4); swynik = String.format("%.7f", + dane) ; } else if (jw.equals("m") ) { dane = dane * 1000; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("cm") ) { dane = dane * pow(10 ,5); swynik = String.format("%.7f", + dane) ; } } else if (jd.equals("g")) { if (jw.equals("dkg")) { dane = dane * 0.1; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("kg")) { dane = dane * 0.001; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("Tona")) { dane = dane * pow(10, -6); swynik = String.format("%.7f", + dane) ; } } else if ( jd.equals("dkg")) { if (jw.equals("g")) { dane = dane * 10; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("kg")) { dane = dane * 0.01; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("Tona")) { dane = dane * pow(10, -5); swynik = String.format("%.7f", + dane) ; } } else if (jd.equals("kg")) { if (jw.equals("g")) { dane = dane * 1000; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("dkg")) { dane = dane * 100; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("Tona")) { dane = dane * 0.001; swynik = String.format("%.7f", + dane) ; } } else if (jd.equals("Tona")) { if (jw.equals("g")) { dane = dane * pow(10 ,6); swynik = String.format("%.7f", + dane) ; } else if (jw.equals("kg")) { dane = dane * 1000; swynik = String.format("%.7f", + dane) ; } else if (jw.equals("dkg")) { dane = dane * pow(10 ,5); swynik = String.format("%.15f", + dane) ; } } if ( (jd.equals("mm") || jd.equals("cm") || jd.equals("dm") || jd.equals("m") || jd.equals("km")) && (jw.equals("g") || jw.equals("dkg") || jw.equals("kg") || jw.equals("Tona"))) { JOptionPane.showMessageDialog(null, "ZŁY TYP JEDNOSTKI", "Błąd",JOptionPane.ERROR_MESSAGE); swynik = "Error"; } else if ( (jd.equals("g") || jd.equals("dkg") || jd.equals("kg") || jd.equals("Tona")) && (jw.equals("mm") || jw.equals("cm") || jw.equals("dm") || jw.equals("m") || jw.equals("km"))) { JOptionPane.showMessageDialog(null, "ZŁY TYP JEDNOSTKI", "Błąd",JOptionPane.ERROR_MESSAGE); swynik = "Error"; } if (jd.equals("Ar") || jd.equals("Ha") && (jw.equals("mm") || jw.equals("cm") || jw.equals("dm") || jw.equals("m") || jw.equals("km") || jw.equals("mm") || jw.equals("cm") || jw.equals("dm") || jw.equals("m") || jw.equals("km"))) { JOptionPane.showMessageDialog(null, "ZAZNACZ POLE JEDNOSTEK KWADRATOWCYH", "Błąd",JOptionPane.ERROR_MESSAGE); swynik = "Error"; } else if ( (jd.equals("cm") || jd.equals("dm") || jd.equals("m") || jd.equals("km") || jd.equals("mm") || jd.equals("cm") || jd.equals("dm") || jd.equals("m") || jd.equals("km")) && (jw.equals("Ar") || jw.equals("Ha")) ) { JOptionPane.showMessageDialog(null, "ZAZNACZ POLE JEDNOSTEK KWADRATOWCYH", "Błąd",JOptionPane.ERROR_MESSAGE); swynik = "Error"; } return swynik; } public String rozwiaz2() { String swynik = ""; if(jd.equals(jw)) { swynik = "" + dane ; } else if (jd.equals("mm")) { if (jw.equals("cm") ) { dane = dane * pow(0.1,2); swynik = String.format("%.15f", + dane); } else if (jw.equals("dm") ) { dane = dane * pow(0.01,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("m")) { dane = dane * pow(0.001,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("km")) { dane = dane * pow(pow(10, -6),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ar")) { dane = dane * pow(10, -8); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ha")) { dane = dane * pow(10, -10); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("cm") ) { if (jw.equals("mm")) { dane = dane * pow(10,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * pow(0.1,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("m") ) { dane = dane * pow(0.01,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("km") ) { dane = dane * pow(pow(10, -5),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ar")) { dane = dane * pow(10, -6); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ha")) { dane = dane * pow(10, -8); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("dm") ) { if (jw.equals("mm") ) { dane = dane * pow(100,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("cm") ) { dane = dane * pow(10,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("m") ) { dane = dane * pow(0.1,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("km")) { dane = dane * pow(pow(10, -4),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ar")) { dane = dane * pow(10, -4); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ha")) { dane = dane * pow(10, -6); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("m") ) { if (jw.equals("mm")) { dane = dane * pow(1000,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * pow(10,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("cm")) { dane = dane * pow(100,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("km")) { dane = dane * pow(0.001,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ar")) { dane = dane * pow(10, -2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ha")) { dane = dane * pow(10, -4); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("km") ) { if (jw.equals("mm") ) { dane = dane * pow(pow(10 ,6),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * pow(pow(10 ,4),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("m") ) { dane = dane * pow(1000,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("cm") ) { dane = dane * pow(pow(10 ,5),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ar")) { dane = dane * pow(10, 4); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ha")) { dane = dane * pow(10, 3); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("Ar") ) { if (jw.equals("mm") ) { dane = dane * pow(10,8); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * pow(10,4); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("m") ) { dane = dane * pow(10,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("cm") ) { dane = dane * pow(10,6); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ha")) { dane = dane * pow(10,-2); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("Ha") ) { if (jw.equals("mm") ) { dane = dane * pow(10,10); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dm") ) { dane = dane * pow(10,6); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("m") ) { dane = dane * pow(10,4); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("cm") ) { dane = dane * pow(10,8); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Ar")) { dane = dane * pow(10,2); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("g")) { if (jw.equals("dkg")) { dane = dane * pow(0.1,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("kg")) { dane = dane * pow(0.001,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Tona")) { dane = dane * pow(pow(10, -6),2); swynik = String.format("%.15f", + dane) ; } } else if ( jd.equals("dkg")) { if (jw.equals("g")) { dane = dane * pow(10,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("kg")) { dane = dane * pow(0.01,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Tona")) { dane = dane * pow(pow(10, -5),2); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("kg")) { if (jw.equals("g")) { dane = dane * pow(1000,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dkg")) { dane = dane * pow(100,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("Tona")) { dane = dane * pow(0.001,2); swynik = String.format("%.15f", + dane) ; } } else if (jd.equals("Tona")) { if (jw.equals("g")) { dane = dane * pow(pow(10 ,6),2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("kg")) { dane = dane * pow(1000,2); swynik = String.format("%.15f", + dane) ; } else if (jw.equals("dkg")) { dane = dane * pow(pow(10 ,5),2); swynik = String.format("%.30f", + dane) ; } } if ( (jd.equals("mm") || jd.equals("cm") || jd.equals("dm") || jd.equals("m") || jd.equals("km") || jd.equals("Ar") || jd.equals("Ha")) && (jw.equals("g") || jw.equals("dkg") || jw.equals("kg") || jw.equals("Tona") )) { JOptionPane.showMessageDialog(null, "ZŁY TYP JEDNOSTKI", "Błąd",JOptionPane.ERROR_MESSAGE); swynik = "Error"; } else if ( (jd.equals("g") || jd.equals("dkg") || jd.equals("kg") || jd.equals("Tona")) && (jw.equals("mm") || jw.equals("cm") || jw.equals("dm") || jw.equals("m") || jw.equals("km") || jw.equals("Ar") || jw.equals("Ha") )) { JOptionPane.showMessageDialog(null, "ZŁY TYP JEDNOSTKI", "Błąd",JOptionPane.ERROR_MESSAGE); swynik = "Error"; } return swynik; } public static void main(String[] args) { Rozwiaz rownanie = new Rozwiaz("mm","g",0.00789); System.out.println((rownanie.rozwiaz())); } }