В универе дали задание написать програмку которая будет проверять 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ов. Подскажите пожалуйста как можно это грамотно сделать. Ибо на седня (может перегорел уже) ну ничего не приходит на ум... Заранее спасибо за ответ! Это сообщение отредактировал(а) FireryWolf - 1.3.2011, 01:49
|