В универе дали задание написать програмку которая будет проверять IP адрес который ввели и выдавать класс данного IPи писать можно ли его использовать отталкиваясь от некоторых критерий(т.е есть исключения).
Начал я все это с 4 текстовых полей для 4 бит IP. Класс то показать было не сложно, а вот исключения ну ни как не получались.... Препод подсказал использовать StringTokenizer(ибо его проходили как раз). Разбить введенный IP на 4 части через точку и задать и проверить все через IF.
Пришлось все переписать.
Собсно вот код:
Код | package Assinment;
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.StringTokenizer; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.JTextField; /** * * @author Infernal Devil */ public class IPCheckUI extends JFrame implements ActionListener { private JTextField myfield1; private JLabel validLable; private JLabel ClassLabel; public IPCheckUI() { //Setup window setSize(300,200); setTitle("IP Cheker"); setDefaultCloseOperation(EXIT_ON_CLOSE); // creating a palnel with text fields and label JPanel upperpanel = new JPanel(); JLabel myJLabel = new JLabel("Input IP : "); myfield1 = new JTextField(8); // creating button JButton mybutton = new JButton ("Check it IP"); add(mybutton, BorderLayout.SOUTH); // adding new lables for displaing Class and validation of IP ClassLabel = new JLabel(); validLable = new JLabel(); // adding panels for class result chek and for ip validation to center JPanel centerpanel = new JPanel(); centerpanel.add(ClassLabel); centerpanel.add(validLable); add(centerpanel,BorderLayout.CENTER); // adding all fileds to panel and seting it upperpanel.add(myJLabel); upperpanel.add(myfield1);
add(upperpanel,BorderLayout.NORTH); //seting ut Action Listener that will check Class mybutton.addActionListener( new ActionListener(){ int a,b,c,d; public void actionPerformed(ActionEvent e) { //Check of IP class StringTokenizer tok = new StringTokenizer(myfield1.getText()); this.a = Integer.parseInt(tok.nextToken()); //Check of exeptions 1bit IPCheckCode ipc = new IPCheckCode(a); int result = ipc.validate(a); switch(result) { case 1: ClassLabel.setText("This is A Class "); break; case 2: ClassLabel.setText("This is B Class "); break; case 3: ClassLabel.setText("This is C Class "); break; case 4: ClassLabel.setText("This IP is invalid"); break; } }
}); setVisible(true); }
public void actionPerformed(ActionEvent e) {
} public static void main(String[] args){ IPCheckUI app = new IPCheckUI(); }
}
|
Код | class IPCheckCode { private int IPChecker; private int a; private int b; private int c; private int d;
IPCheckCode(int a) { IPChecker = a; } public int validate(int a) { if(a <= 127){ return 1; } if (a <= 191){ return 2; } if (a < 222){ return 3; } if (a >= 223){ return 4; } else return 0; }
}
|
Препод настаивает чтоб делали через 2 класса. 1 для интерфейса другой для IFов.
Подскажите пожалуйста как можно это грамотно сделать. Ибо на седня (может перегорел уже) ну ничего не приходит на ум...
Заранее спасибо за ответ! |