Advertisement
Morogn93

CalcSPO 0.4

May 28th, 2015
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.29 KB | None | 0 0
  1. import java.lang.*;
  2.  
  3. import static java.lang.Math.*; // nie trzeba używać w matematyce takich konstrukcji jak  y=Math.tanh(x) wystarczy y=tanh(x)
  4. import java.awt.Font;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.EventQueue;
  8.  
  9. import javax.swing.JOptionPane;
  10. import javax.swing.JFrame;
  11. import javax.swing.JButton;
  12. import javax.swing.JTextField;
  13. import javax.swing.JLabel;
  14. import javax.swing.JTextPane;
  15.  
  16. public class SPOcalc022 { //anzwa porgramu
  17.  
  18.  
  19.  
  20.     private JFrame frame;
  21.     private JTextField textFieldNum1; //jest
  22.     private JTextField textFieldNum2; //jest
  23.     private JButton btnNewButton;
  24.     private JButton btnNewButton_1;
  25.     private JTextField textFieldAns;
  26.     private JLabel characterEquate;
  27.     private JLabel lblNewLabel;
  28.     private JLabel lblNewLabel_1;
  29.     private JLabel lblNewLabel_2;
  30.     private JLabel lblNewLabel_3;
  31.     private JLabel pierwszaKreskaUlamkowa;
  32.     private JLabel lblNewLabel_5;
  33.     /*private JTextField textField3;*/
  34.     private JLabel lblNewLabel_6;
  35.     private JLabel lblNewLabel_7;
  36.     private JTextField textFieldCos2; //jest
  37.     private JLabel drugaKreskaUlamkowa;
  38.     private JLabel lblNewLabel_9;
  39.     private JLabel tanhGornyGrafika;
  40.     private JLabel tanhDolnyGrafika;
  41.     private JLabel otworzNawiasGoraGrafika;
  42.     private JLabel otworzNawiasDolGrafika;
  43.     private JTextField textField;
  44.     private JLabel lblNewLabel_10;
  45.     private JLabel label_1;
  46.     private JTextField textField_1; //jest
  47.     private JLabel lblD;
  48.     private JLabel lblNewLabel_11;
  49.     private JTextField textField_2; //jest sqrt E
  50.     private JLabel zamknijNawiasGoraGrafika;
  51.     private JLabel label_3;
  52.     private JLabel label_4;
  53.     private JLabel lblF;
  54.     private JLabel zamknijNawiasDolGrafika;
  55.     private JLabel label_6;
  56.     private JLabel label_7;
  57.     private JLabel label_8;
  58.     private JLabel label_9;
  59.     private JLabel przenikalnoscElektrycznaGoraGrafika;
  60.     private JLabel przenikalnoscElektrycznaDolGrafika;
  61.  
  62.  
  63.  
  64.     /**
  65.      * Launch the application.
  66.      */
  67.     public static void main(String[] args) {// metoda startuje program
  68.         EventQueue.invokeLater(new Runnable() {  // dany kod będzie uruchamiany przez klasy swing (patrz na importy) czyli wątek służący do obsługi interfejsu graficznego
  69.             public void run() {  //metoda run zawierająca pętle try która próbuje uruchomić widzialność okna
  70.                 try {  
  71.                     SPOcalc022 window = new SPOcalc022();
  72.                     window.frame.setVisible(true); // włączenie widzialności okna używając obiektu frame odwołującego się do klasy JFrame ---> patrz wyżej "Private JFrame frame;"
  73.                 } catch (Exception e) {
  74.                     e.printStackTrace();
  75.                 }
  76.             }
  77.         });
  78.     }
  79.  
  80.     /**
  81.      * Create the application.
  82.      */
  83.     public SPOcalc022() { //
  84.         initialize();
  85.     }
  86.  
  87.     /**
  88.      * Initialize the contents of the frame.
  89.      */
  90.     private void initialize() {
  91.         frame = new JFrame("");
  92.         frame.setBounds(100, 100, 450, 300);
  93.         frame.setSize(1100,613); // przypisanie rozmiaru okna na start
  94.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //kończy działanie programu w konsoli po wyłączeniu okienka
  95.         frame.getContentPane().setLayout(null); // wyłącza automatyczne ustawianie okienek
  96.        
  97.                
  98.         textFieldNum1 = new JTextField(); // obiekt textFieldNum1 odwołuje się do klasy JTextField dzięki której tworzymy Pola tekstowe (te okienka do wstawiania znaczków)
  99.         textFieldNum1.setBounds(372, 128, 53, 30); // lokalizacja X i Y pola tekstowego następnie szerokość i wysokosć pola tekstowego
  100.         frame.getContentPane().add(textFieldNum1);
  101.         textFieldNum1.setColumns(10);
  102.        
  103.         textFieldNum2 = new JTextField();
  104.         textFieldNum2.setBounds(496, 128, 53, 30);
  105.         frame.getContentPane().add(textFieldNum2);
  106.         textFieldNum2.setColumns(10);
  107.  
  108.  
  109.        
  110.         JButton btnNewButton = new JButton("Oblicz"); // Klasa JButton z obiektem
  111.         btnNewButton.addActionListener(new ActionListener(){  // dodaje do obiektu btnNewButton możliwość nasłuchiwania akcji (czyli możliwość kliknięcia) a wraz z nim zostaje uruchamiana metoda (wszystko to co znajduje się pomiędzy "{ }")
  112.             public void actionPerformed(ActionEvent arg0){
  113.                         Double d, e, c, f;
  114.                         Double dwaPI;
  115.                         Double eSqrt;
  116.                         Double wynikTanh, wynikTanhGorny, wynikTanhDolny;
  117.                         Double modul;
  118.                         Double a, kat0, kat0w, pierwszeDzialanie, wynikOstateczny;
  119.                     try {
  120.                             e = Double.parseDouble(textField_2.getText()); // wprowadzanie wartości sqrtE
  121.                             eSqrt = sqrt(e);
  122.                            
  123.                             f = Double.parseDouble(textField.getText());
  124.                             d = Double.parseDouble(textField_1.getText());
  125.                            
  126.                             c = 299792458.0;
  127.                             dwaPI = 2.0 * PI;
  128.                            
  129.                             wynikTanh = tanh((dwaPI * c * d * eSqrt)/f);
  130.                            
  131.                             wynikTanhGorny = wynikTanh - eSqrt;
  132.                             wynikTanhDolny = wynikTanh + eSqrt;
  133.                            
  134.                             modul = abs(wynikTanhGorny/wynikTanhDolny);
  135.                            
  136.                             a = Double.parseDouble(textFieldNum1.getText());
  137.                             kat0 = Double.parseDouble(textFieldNum2.getText());
  138.                             kat0w = Double.parseDouble(textFieldCos2.getText());
  139.                            
  140.                             pierwszeDzialanie = (a * c * sin(kat0))/(dwaPI * f * sin(kat0w));
  141.                             wynikOstateczny = pierwszeDzialanie * modul;
  142.                            
  143.                          
  144.  
  145.                             textFieldAns.setText(Double.toString(wynikOstateczny)); // wysyła do pola textowego o nazwie "textFeilAns" wyynik
  146.                 }
  147.  
  148.                 catch(Exception e1) {
  149.  
  150.                     JOptionPane.showMessageDialog(null, " Proszę wprowadzać tylko liczby");
  151.                 }
  152.             }
  153.         });
  154.         btnNewButton.setBounds(12, 150, 70, 30);
  155.         btnNewButton.setBorder(null);
  156.         frame.getContentPane().add(btnNewButton);
  157.  
  158.        
  159.        
  160.        
  161.         JLabel lblAnswer = new JLabel("SPO ");
  162.         lblAnswer.setBounds(93, 158, 39, 18);
  163.         lblAnswer.setBorder(null);
  164.         frame.getContentPane().add(lblAnswer);
  165.  
  166.        
  167.         textFieldAns = new JTextField();
  168.         textFieldAns.setBounds(133, 141, 200, 50);
  169.         frame.getContentPane().add(textFieldAns);
  170.         textFieldAns.setColumns(10);
  171.        
  172.         lblNewLabel = new JLabel("=");
  173.         lblNewLabel.setBounds(338, 140, 16, 50);
  174.         frame.getContentPane().add(lblNewLabel);
  175.        
  176.         lblNewLabel_1 = new JLabel("a:");
  177.         lblNewLabel_1.setBounds(386, 90, 39, 34);
  178.         frame.getContentPane().add(lblNewLabel_1);
  179.        
  180.         lblNewLabel_2 = new JLabel("* c * sin * ");
  181.         lblNewLabel_2.setBounds(426, 128, 70, 29);
  182.         frame.getContentPane().add(lblNewLabel_2);
  183.        
  184.         lblNewLabel_3 = new JLabel("θ:");
  185.         lblNewLabel_3.setBounds(510, 88, 39, 38);
  186.         frame.getContentPane().add(lblNewLabel_3);
  187.        
  188.         pierwszaKreskaUlamkowa = new JLabel("---------------------------------------------\n");
  189.         pierwszaKreskaUlamkowa.setBounds(371, 140, 231, 50);
  190.         frame.getContentPane().add(pierwszaKreskaUlamkowa);
  191.        
  192.         lblNewLabel_5 = new JLabel("2 * π *");
  193.         lblNewLabel_5.setBounds(382, 180, 53, 30);
  194.         frame.getContentPane().add(lblNewLabel_5);
  195.        
  196.        
  197.         lblNewLabel_6 = new JLabel("f");
  198.         lblNewLabel_6.setBounds(427, 180, 32, 30);
  199.         frame.getContentPane().add(lblNewLabel_6);
  200.        
  201.         lblNewLabel_7 = new JLabel("* sin *");
  202.         lblNewLabel_7.setBounds(447, 170, 53, 50);
  203.         frame.getContentPane().add(lblNewLabel_7);
  204.        
  205.         JTextPane txtpnANajduszy = new JTextPane();
  206.         txtpnANajduszy.setText("a - najdłuższy wymiar krawędzi lub nieciągłości;\nd - grubość warstwy dielektrycznej;\nθ - kąt mierzony w stosunku do normalnej;\nθ w - kąt wewnętrzny między ścianami;\nε - znormalizowana przenikalność elektryczna;\nf - częstotliwość.");
  207.         txtpnANajduszy.setBounds(31, 205, 249, 147);
  208.         frame.getContentPane().add(txtpnANajduszy);
  209.        
  210.         textFieldCos2 = new JTextField();
  211.         textFieldCos2.setBounds(496, 181, 53, 30);
  212.         frame.getContentPane().add(textFieldCos2);
  213.         textFieldCos2.setColumns(10);
  214.        
  215.         JLabel lblNewLabel_8 = new JLabel("θw:");
  216.         lblNewLabel_8.setBounds(510, 212, 32, 30);
  217.         frame.getContentPane().add(lblNewLabel_8);
  218.        
  219.         drugaKreskaUlamkowa = new JLabel("-----------------------------------------------------------------\n");
  220.         drugaKreskaUlamkowa.setBounds(624, 140, 350, 50);
  221.         frame.getContentPane().add(drugaKreskaUlamkowa);
  222.        
  223.         lblNewLabel_9 = new JLabel("f:");
  224.         lblNewLabel_9.setBounds(780, 141, 39, 30);
  225.         frame.getContentPane().add(lblNewLabel_9);
  226.        
  227.         tanhGornyGrafika = new JLabel("tanh");
  228.         tanhGornyGrafika.setBounds(620, 82, 77, 50);
  229.         frame.getContentPane().add(tanhGornyGrafika);
  230.        
  231.         tanhDolnyGrafika = new JLabel("tanh");
  232.         tanhDolnyGrafika.setBounds(620, 202, 77, 50);
  233.         frame.getContentPane().add(tanhDolnyGrafika);
  234.        
  235.         otworzNawiasGoraGrafika = new JLabel("(");
  236.         otworzNawiasGoraGrafika.setFont(new Font("Dialog", Font.PLAIN, 78));
  237.         otworzNawiasGoraGrafika.setBounds(660, 47, 60, 97);
  238.         frame.getContentPane().add(otworzNawiasGoraGrafika);
  239.        
  240.         otworzNawiasDolGrafika = new JLabel("(");
  241.         otworzNawiasDolGrafika.setFont(new Font("Dialog", Font.PLAIN, 78));
  242.         otworzNawiasDolGrafika.setBounds(660, 180, 60, 97);
  243.         frame.getContentPane().add(otworzNawiasDolGrafika);
  244.        
  245.         textField = new JTextField();
  246.         textField.setBounds(766, 110, 53, 30);
  247.         frame.getContentPane().add(textField);
  248.         textField.setColumns(10);
  249.        
  250.         lblNewLabel_10 = new JLabel("2 * π * c *");
  251.         lblNewLabel_10.setBounds(698, 47, 62, 50);
  252.         frame.getContentPane().add(lblNewLabel_10);
  253.        
  254.         label_1 = new JLabel("-------------------------------------\n");
  255.         label_1.setBounds(680, 74, 208, 50);
  256.         frame.getContentPane().add(label_1);
  257.        
  258.         textField_1 = new JTextField();
  259.         textField_1.setColumns(10);
  260.         textField_1.setBounds(766, 63, 53, 30);
  261.         frame.getContentPane().add(textField_1);
  262.        
  263.         lblD = new JLabel("d:");
  264.         lblD.setBounds(780, 26, 39, 44);
  265.         frame.getContentPane().add(lblD);
  266.        
  267.         lblNewLabel_11 = new JLabel(" √ε:");
  268.         lblNewLabel_11.setBounds(837, 23, 200, 50);
  269.         frame.getContentPane().add(lblNewLabel_11);
  270.  
  271.         przenikalnoscElektrycznaGoraGrafika = new JLabel("- √ε:");
  272.         przenikalnoscElektrycznaGoraGrafika.setFont(new Font("Dialog", Font.PLAIN, 20));
  273.         przenikalnoscElektrycznaGoraGrafika.setBounds(910, 82, 77, 50);
  274.         frame.getContentPane().add(przenikalnoscElektrycznaGoraGrafika);
  275.  
  276.         przenikalnoscElektrycznaDolGrafika = new JLabel("+√ε:");
  277.         przenikalnoscElektrycznaDolGrafika.setFont(new Font("Dialog", Font.PLAIN, 20));
  278.         przenikalnoscElektrycznaDolGrafika.setBounds(910, 202, 77, 50);
  279.         frame.getContentPane().add(przenikalnoscElektrycznaDolGrafika);
  280.  
  281.         textField_2 = new JTextField();
  282.         textField_2.setColumns(10);
  283.         textField_2.setBounds(825, 63, 53, 30);
  284.         frame.getContentPane().add(textField_2);
  285.        
  286.         zamknijNawiasGoraGrafika = new JLabel(")");
  287.         zamknijNawiasGoraGrafika.setFont(new Font("Dialog", Font.PLAIN, 78));
  288.         zamknijNawiasGoraGrafika.setBounds(884, 47, 60, 97);
  289.         frame.getContentPane().add(zamknijNawiasGoraGrafika);
  290.        
  291.         label_3 = new JLabel("2 * π * c * d * √ε");
  292.         label_3.setBounds(719, 192, 180, 50);
  293.         frame.getContentPane().add(label_3);
  294.        
  295.         label_4 = new JLabel("-------------------------------------\n");
  296.         label_4.setBounds(680, 205, 208, 50);
  297.         frame.getContentPane().add(label_4);
  298.        
  299.         lblF = new JLabel("f");
  300.         lblF.setBounds(766, 233, 44, 34);
  301.         frame.getContentPane().add(lblF);
  302.        
  303.         zamknijNawiasDolGrafika = new JLabel(")");
  304.         zamknijNawiasDolGrafika.setFont(new Font("Dialog", Font.PLAIN, 78));
  305.         zamknijNawiasDolGrafika.setBounds(884, 180, 60, 97);
  306.         frame.getContentPane().add(zamknijNawiasDolGrafika);
  307.        
  308.         label_6 = new JLabel("|");
  309.         label_6.setFont(new Font("Dialog", Font.PLAIN, 99));
  310.         label_6.setBounds(590, 65, 60, 97);
  311.         frame.getContentPane().add(label_6);
  312.        
  313.         label_7 = new JLabel("|");
  314.         label_7.setFont(new Font("Dialog", Font.PLAIN, 99));
  315.         label_7.setBounds(590, 150, 60, 97);
  316.         frame.getContentPane().add(label_7);
  317.        
  318.         label_8 = new JLabel("|");
  319.         label_8.setFont(new Font("Dialog", Font.PLAIN, 99));
  320.         label_8.setBounds(950, 150, 60, 97);
  321.         frame.getContentPane().add(label_8);
  322.        
  323.         label_9 = new JLabel("|");
  324.         label_9.setFont(new Font("Dialog", Font.PLAIN, 99));
  325.         label_9.setBounds(950, 65, 60, 97);
  326.         frame.getContentPane().add(label_9);
  327.     }
  328. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement