[JavaFx] برنامج كاشف عناوين المواقع و الأجهزة IP Finder
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
[JavaFx] برنامج كاشف عناوين المواقع و الأجهزة IP Finder
طريقة إنشاء برنامج (IP Finder ) و الذي يمكن إستخدامه لجلب عنوان أي شيء متصل بالنت سواء كان سيرفر, حاسوب, هاتف إلخ..
import java.net.InetAddress;
import java.net.UnknownHostException;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Main extends Application {
// هنا قمنا بتعريف الأشياء التي سيتم وضعها في النافذة
Pane backgroundPane;
ImageView imageView;
Label label, labelResult, labelDevelopedBy;
TextField textField;
Button buttonFind;
@Override
public void start(Stage stage) {
// هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
backgroundPane = new Pane();
imageView = new ImageView(new Image(getClass().getResourceAsStream("/images/world-map.png")));
label = new Label("Enter Domain");
textField = new TextField();
buttonFind = new Button("Get IP");
labelResult = new Label("");
labelDevelopedBy = new Label("Developed by harmash.com");
// هنا قمنا بتحديد حجم كل شيء سيتم إضافته في الحاوية الرئيسية التي سنضعها في النافذة
backgroundPane.setPrefSize(600, 340);
imageView.setFitWidth(620);
imageView.setFitHeight(360);
label.setPrefSize(200, 30);
textField.setPrefSize(200, 36);
buttonFind.setPrefSize(200, 36);
labelResult.setPrefSize(600, 30);
labelDevelopedBy.setPrefSize(600, 30);
// هنا قمنا بتحديد مكان ظهور كل شيء سيتم إضافته في الحاوية الرئيسية التي سنضعها في النافذة
label.setTranslateX(200);
label.setTranslateY(75);
textField.setTranslateX(200);
textField.setTranslateY(115);
buttonFind.setTranslateX(200);
buttonFind.setTranslateY(165);
labelResult.setTranslateX(0);
labelResult.setTranslateY(225);
labelDevelopedBy.setTranslateX(0);
labelDevelopedBy.setTranslateY(300);
// يظهر في وسطهم labelDevelopedBy و labelResult ,textField ,label هنا قمنا بجعل نص الكائنات
label.setAlignment(Pos.CENTER);
textField.setAlignment(Pos.CENTER);
labelResult.setAlignment(Pos.CENTER);
labelDevelopedBy.setAlignment(Pos.CENTER);
// ( نوع خطه, حجمه, سمكه, لونه ) label هنا قمنا يتعديل تصميم الكائن
label.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 20px;"
+ "-fx-text-fill: white;"
+ "-fx-font-weight: bold;"
);
// ( نوع خطه, حجمه, سمكه, لونه, مع تحديد لون و سمك حدوده و لون خلفيته ) textField هنا قمنا يتعديل تصميم الكائن
textField.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 16px;"
+ "-fx-text-fill: lightgrey;"
+ "-fx-border-color: gray;"
+ "-fx-border-style: solid;"
+ "-fx-border-width: 2px;"
+ "-fx-background-color: black;"
);
// ( نوع خطه, حجمه, سمكه, لونه, مع تحديد لون و سمك حدوده و لون خلفيته ) buttonFind هنا قمنا يتعديل تصميم الكائن
buttonFind.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 16px;"
+ "-fx-text-fill: lightgrey;"
+ "-fx-border-color: gray;"
+ "-fx-border-style: solid;"
+ "-fx-border-width: 2px;"
+ "-fx-background-color: #333;"
+ "-fx-cursor: hand;"
);
// ( نوع خطه, حجمه, سمكه ) labelResult هنا قمنا يتعديل تصميم الكائن
labelResult.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 18px;"
+ "-fx-font-weight: bold;"
);
// ( نوع خطه, حجمه, سمكه, لونه ) labelDevelopedBy هنا قمنا يتعديل تصميم الكائن
labelDevelopedBy.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 16px;"
+ "-fx-text-fill: Blue;"
+ "-fx-font-weight: bold;"
);
// buttonFind هنا قمنا بتحديد ما سيحدث عند النقر على الكائن
buttonFind.setOnAction((ActionEvent) -> {
// url سيتم تخزين النص الموجود في مربع النص في الكائن
String url = textField.getText();
// labelResult إذا لم يكن مربع النص فارغاً سيحاول البرنامج الإتصال بالنت و جلب عنوان الموقع المذكور و وضعه كنص للكائن
if (!url.isEmpty()) {
try {
InetAddress address = InetAddress.getByName(url);
String ip = address.getHostAddress();
labelResult.setText(ip);
labelResult.setTextFill(Color.GREEN);
}
catch (UnknownHostException ex) {
labelResult.setText("Invalid URL or Network is Down");
labelResult.setTextFill(Color.RED);
}
}
// إذا كان مربع النص فارغاً عند النقر على الزر, سيتم إظهار النص التالي و تلوينه بالأحمر
else {
labelResult.setText("Please enter a valid URL in the above field");
labelResult.setTextFill(Color.RED);
}
});
// في النافذة Root Node و الذي ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// هنا قمنا بإضافة جميع الأشياء التي قمنا بإنشائها في النافذة
root.getChildren().add(backgroundPane);
root.getChildren().add(imageView);
root.getChildren().add(label);
root.getChildren().add(textField);
root.getChildren().add(buttonFind);
root.getChildren().add(labelResult);
root.getChildren().add(labelDevelopedBy);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 600, 340);
// هنا وضعنا عنوان للنافذة
stage.setTitle("Ip Finder");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
// هنا جعلنا المستخدم غير قادر على تكبير أو تصغير حجم النافذة بنفسه
stage.setResizable(false);
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import java.net.InetAddress;
import java.net.UnknownHostException;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Main extends Application {
// هنا قمنا بتعريف الأشياء التي سيتم وضعها في النافذة
Pane backgroundPane;
ImageView imageView;
Label label, labelResult, labelDevelopedBy;
TextField textField;
Button buttonFind;
@Override
public void start(Stage stage) {
// هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
backgroundPane = new Pane();
imageView = new ImageView(new Image(getClass().getResourceAsStream("/images/world-map.png")));
label = new Label("Enter Domain");
textField = new TextField();
buttonFind = new Button("Get IP");
labelResult = new Label("");
labelDevelopedBy = new Label("Developed by harmash.com");
// هنا قمنا بتحديد حجم كل شيء سيتم إضافته في الحاوية الرئيسية التي سنضعها في النافذة
backgroundPane.setPrefSize(600, 340);
imageView.setFitWidth(620);
imageView.setFitHeight(360);
label.setPrefSize(200, 30);
textField.setPrefSize(200, 36);
buttonFind.setPrefSize(200, 36);
labelResult.setPrefSize(600, 30);
labelDevelopedBy.setPrefSize(600, 30);
// هنا قمنا بتحديد مكان ظهور كل شيء سيتم إضافته في الحاوية الرئيسية التي سنضعها في النافذة
label.setTranslateX(200);
label.setTranslateY(75);
textField.setTranslateX(200);
textField.setTranslateY(115);
buttonFind.setTranslateX(200);
buttonFind.setTranslateY(165);
labelResult.setTranslateX(0);
labelResult.setTranslateY(225);
labelDevelopedBy.setTranslateX(0);
labelDevelopedBy.setTranslateY(300);
// يظهر في وسطهم labelDevelopedBy و labelResult ,textField ,label هنا قمنا بجعل نص الكائنات
label.setAlignment(Pos.CENTER);
textField.setAlignment(Pos.CENTER);
labelResult.setAlignment(Pos.CENTER);
labelDevelopedBy.setAlignment(Pos.CENTER);
// ( نوع خطه, حجمه, سمكه, لونه ) label هنا قمنا يتعديل تصميم الكائن
label.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 20px;"
+ "-fx-text-fill: white;"
+ "-fx-font-weight: bold;"
);
// ( نوع خطه, حجمه, سمكه, لونه, مع تحديد لون و سمك حدوده و لون خلفيته ) textField هنا قمنا يتعديل تصميم الكائن
textField.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 16px;"
+ "-fx-text-fill: lightgrey;"
+ "-fx-border-color: gray;"
+ "-fx-border-style: solid;"
+ "-fx-border-width: 2px;"
+ "-fx-background-color: black;"
);
// ( نوع خطه, حجمه, سمكه, لونه, مع تحديد لون و سمك حدوده و لون خلفيته ) buttonFind هنا قمنا يتعديل تصميم الكائن
buttonFind.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 16px;"
+ "-fx-text-fill: lightgrey;"
+ "-fx-border-color: gray;"
+ "-fx-border-style: solid;"
+ "-fx-border-width: 2px;"
+ "-fx-background-color: #333;"
+ "-fx-cursor: hand;"
);
// ( نوع خطه, حجمه, سمكه ) labelResult هنا قمنا يتعديل تصميم الكائن
labelResult.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 18px;"
+ "-fx-font-weight: bold;"
);
// ( نوع خطه, حجمه, سمكه, لونه ) labelDevelopedBy هنا قمنا يتعديل تصميم الكائن
labelDevelopedBy.setStyle(
"-fx-font-family: Arial;"
+ "-fx-font-size: 16px;"
+ "-fx-text-fill: Blue;"
+ "-fx-font-weight: bold;"
);
// buttonFind هنا قمنا بتحديد ما سيحدث عند النقر على الكائن
buttonFind.setOnAction((ActionEvent) -> {
// url سيتم تخزين النص الموجود في مربع النص في الكائن
String url = textField.getText();
// labelResult إذا لم يكن مربع النص فارغاً سيحاول البرنامج الإتصال بالنت و جلب عنوان الموقع المذكور و وضعه كنص للكائن
if (!url.isEmpty()) {
try {
InetAddress address = InetAddress.getByName(url);
String ip = address.getHostAddress();
labelResult.setText(ip);
labelResult.setTextFill(Color.GREEN);
}
catch (UnknownHostException ex) {
labelResult.setText("Invalid URL or Network is Down");
labelResult.setTextFill(Color.RED);
}
}
// إذا كان مربع النص فارغاً عند النقر على الزر, سيتم إظهار النص التالي و تلوينه بالأحمر
else {
labelResult.setText("Please enter a valid URL in the above field");
labelResult.setTextFill(Color.RED);
}
});
// في النافذة Root Node و الذي ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// هنا قمنا بإضافة جميع الأشياء التي قمنا بإنشائها في النافذة
root.getChildren().add(backgroundPane);
root.getChildren().add(imageView);
root.getChildren().add(label);
root.getChildren().add(textField);
root.getChildren().add(buttonFind);
root.getChildren().add(labelResult);
root.getChildren().add(labelDevelopedBy);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 600, 340);
// هنا وضعنا عنوان للنافذة
stage.setTitle("Ip Finder");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
// هنا جعلنا المستخدم غير قادر على تكبير أو تصغير حجم النافذة بنفسه
stage.setResizable(false);
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
Rahaf Qa- ..
- تاريخ التسجيل : 08/09/2023
المساهمات : 17
النقاط : 51
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الخميس أبريل 25, 2024 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
الخميس أبريل 25, 2024 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft