Класс создания общего интерфейса с выбором дальнейшего пути расчета.

import java.awt.*;

import java.awt.event.*;

import java.io.*;

public class okno extends Frame implements WindowListener, ItemListener {

public void windowOpened(WindowEvent e) {}

public void windowClosing(WindowEvent e) {

dispose();

System.exit(0); }

public void windowClosed(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowActivated(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}

 

//добавить галочку для записи в файл

 

CheckboxGroup группа = new CheckboxGroup();

Checkbox box11 = new Checkbox("Затухание без погрешностей",false, группа);

Checkbox box12 = new Checkbox("Развитие пар кабеля 5 см на станционном конце ",false, группа);

Checkbox box21 = new Checkbox("Развитие пар кабеля 15 см на станционном конце ",false, группа);

Checkbox box22 = new Checkbox("Скручивание кабеля с радиусом изгиба 1,2 см ",false, группа);

Checkbox box23 = new Checkbox(""изломленный" кабель ",false, группа);

Checkbox box31 = new Checkbox("Затухание всех погрешностей",false, группа);

Checkbox box = new Checkbox("Запись в файл",false);

 

public void itemStateChanged(ItemEvent e) {

Object pon = e.getItemSelectable();

if (pon == box11) {

Frame f11 = new oknop1();

f11.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

else

if (pon == box12){

Frame f12 = new oknop2();

f12.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

else

if (pon == box21) {

Frame f21 = new oknop3();

f21.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

else

if (pon == box22) {

Frame f22 = new oknop4();

f22.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

else

if (pon == box23) {

Frame f23 = new oknop5();

f23.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

else

if (pon == box31) {

Frame f31 = new oknop6();

f31.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

else

if (pon == box){

try {

vfail f2 = new vfail();

f2.asd();

} catch (Throwable e2) {

 

e2.printStackTrace();

}

}

}

okno(){

super("Выбор затухания");

Panel p = new Panel();

add(p, BorderLayout.NORTH);

setLayout(new GridLayout(1, 7));

p.add(box11);

p.add(box12);

p.add(box21);

p.add(box22);

p.add(box23);

p.add(box31);

p.add(box);

 

box11.addItemListener(this);

box12.addItemListener(this);

box21.addItemListener(this);

box22.addItemListener(this);

box23.addItemListener(this);

box31.addItemListener(this);

box.addItemListener(this);

 

addWindowListener(this);

 

setSize(200, 230);

setVisible(true);

}

public static void main(String arg[])

{

new okno();

}

}

 

Класс содержащий создание интерфейса для затухания без учета погрешностей.

import java.awt.*;

import java.awt.event.*;

public class oknop1 extends Frame implements ActionListener{

private TextField tf1;

private TextField tf;

private TextField tf2;

private TextArea ta;

private TextArea ta1;

private TextArea ta2;

oknop1(){

super ("Без погрешностей");

setLayout(null);

Button bl = new Button("расчет");

bl.setBounds(10,210,160,30);

add(bl);

 

Label ll = new Label("Выбор этажа", Label.CENTER);

ll.setBounds(10,20,160,30);

tf = new TextField(" ", 50);

tf.setBounds(10,50,160,30);

 

Label ll1 = new Label("количество коннекторов, шт.", Label.CENTER);

ll1.setBounds(10,80,160,30);

tf1 = new TextField(" ", 50);

tf1.setBounds(10,110,160,30);

 

Label ll2 = new Label("количество муфт, шт.", Label.CENTER);

ll2.setBounds(10,140,160,30);

tf2 = new TextField(" ", 50);

tf2.setBounds(10,170,160,30);

 

Label ch = new Label("Затухание на каждом ПК");

ch.setBounds(10, 250, 160, 30);

ta = new TextArea();

ta.setBounds(10,280,160,50);

 

Label ch1 = new Label("Длина всей линии");

ch1.setBounds(10, 330, 160, 30);

ta1 = new TextArea();

ta1.setBounds(10,360,160,50);

 

Label ch2 = new Label("Затухание линии");

ch2.setBounds(10, 410, 160, 30);

ta2 = new TextArea();

ta2.setBounds(10,440,160,50);

 

add(ll);

add(ll1);

add(ll2);

add(ch);

add(ch1);

add(ch2);

add(ta);

add(ta1);

add(ta2);

add(tf);

add(tf2);

add(tf1);

 

tf.addActionListener(this) ;

tf1.addActionListener(this) ;

tf2.addActionListener(this) ;

bl.addActionListener(this) ;

 

setSize(200,500);

setVisible(true);

}

 

public void actionPerformed(ActionEvent ae){

 

String x=tf.getText();

double d = Double.parseDouble(x);

 

String x1=tf1.getText();

double d1 = Double.parseDouble(x1);

 

String x2=tf2.getText();

double d2 = Double.parseDouble(x2);

 

zatyx func = new zatyx();

 

String z2 = func.f1(d, d1,d2);

ta1.append(z2);

 

String z4 = func.f4();

ta.append(z4);

 

 

String z3 = func.f3();

ta2.append(z3);

}

}

 

Класс содержащий создание интерфейса для затухания с учетом развития пар кабеля 5 см на станционном конце - 3,8 дБ.

import java.awt.*;

import java.awt.event.*;

public class oknop2 extends Frame implements ActionListener{

private TextField tf1;

private TextField tf;

private TextField tf2;

private TextArea ta;

private TextArea ta1;

private TextArea ta2;

private TextArea ta3;

//private TextArea ta3;

oknop2(){

super ("Развитие пар кабеля 5 см на станционном конце");

setLayout(null);

Button bl = new Button("расчет");

bl.setBounds(10,210,160,30);

add(bl);

 

Label ll = new Label("Выбор этажа", Label.CENTER);

ll.setBounds(10,20,160,30);

tf = new TextField(" ", 50);

tf.setBounds(10,50,160,30);

 

Label ll1 = new Label("количество коннекторов, шт.", Label.CENTER);

ll1.setBounds(10,80,160,30);

tf1 = new TextField(" ", 50);

tf1.setBounds(10,110,160,30);

 

Label ll2 = new Label("количество муфт, шт.", Label.CENTER);

ll2.setBounds(10,140,160,30);

tf2 = new TextField(" ", 50);

tf2.setBounds(10,170,160,30);

 

Label ch = new Label("Затухание на каждом ПК");

ch.setBounds(10, 250, 160, 30);

ta = new TextArea();

ta.setBounds(10,280,160,50);

 

Label ch1 = new Label("Длина всей линии");

ch1.setBounds(10, 330, 160, 30);

ta1 = new TextArea();

ta1.setBounds(10,360,160,50);

 

Label ch2 = new Label("Затухание линии");

ch2.setBounds(10, 410, 160, 30);

ta2 = new TextArea();

ta2.setBounds(10,440,160,50);

 

Label ch3 = new Label("Развитие пар кабеля 5 см на станционном конце");

ch3.setBounds(10, 490, 190, 30);

ta3 = new TextArea();

ta3.setBounds(10,520,160,50);

 

add(ll);

add(ll1);

add(ll2);

add(ch);

add(ch1);

add(ch2);

add(ch3);

add(ta);

add(ta1);

add(ta2);

add(ta3);

add(tf);

add(tf2);

add(tf1);

 

tf.addActionListener(this) ;

tf1.addActionListener(this) ;

tf2.addActionListener(this) ;

bl.addActionListener(this) ;

 

setSize(200,600);

setVisible(true);

}

 

public void actionPerformed(ActionEvent ae){

 

String x=tf.getText();

double d = Double.parseDouble(x);

 

String x1=tf1.getText();

double d1 = Double.parseDouble(x1);

 

String x2=tf2.getText();

double d2 = Double.parseDouble(x2);

 

zatyx func = new zatyx();

 

String z2 = func.f1(d,d1,d2);

ta1.append(z2);

 

String z3 = func.f3();

ta2.append(z3);

 

String z4 = func.f4();

ta.append(z4);

 

String z5 = func.f51(d);

ta3.append(z5);

}

}