Learn Typing Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Computer Fundamentals English English Conversations Problem Solving

كود محلل عناوين المواقع لا يعمل

السلام عليكم، عندما أنسخ كود محلل عنوانين المواقع لا يعمل معي مع العلم أني أخذت صورة أخرى بنفس الإسم.

الكود:

// ip_finder موجود بداخل المجلد Main.java هنا ذكرنا أن الملف
package ip_finder;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
// و بالتالي أصبح إنشاء كائن منه يمثل إنشاء نافذة JFrame يرث من الكلاس Main هنا جعلنا الكلاس
public class Main extends JFrame implements ActionListener {
// هنا قمنا بتعريف الأشياء التي سيتم وضعها في النافذة
JPanel backgroundPanel;
JLabel label, labelResult, backgroundImage;
JTextField textField;
JButton buttonFind;
// فقط createAndShowGUI() سيقوم الكونستركتور بإستدعاء الدالة Main عند إنشاء كائن من الكلاس
public Main() {
createAndShowGUI();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// التي ستنشئ النافذة createAndShowGUI() و بالتالي سيتم إستدعاء الدالة Main هنا قمنا بإنشاء كائن من الكلاس
new Main();
}
});
}
// هنا نضع كود إنشاء النافذة و محتوياتها
private void createAndShowGUI() {
// هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
backgroundPanel = new JPanel(null);
backgroundImage = new JLabel(new ImageIcon(this.getClass().getResource("/images/world-map.png")));
label = new JLabel("Enter URL", JLabel.CENTER);
textField = new JTextField();
buttonFind = new JButton("Get IP");
labelResult = new JLabel("", JLabel.CENTER);
// هنا قمنا بتحديد حجم و مكان كل شيء سيتم إضافته في النافذة
backgroundPanel.setPreferredSize(new Dimension(600, 340));
backgroundImage.setBounds(0, 0, 600, 340);
label.setBounds(200, 75, 200, 30);
textField.setBounds(200, 115, 200, 36);
buttonFind.setBounds(200, 165, 200, 36);
labelResult.setBounds(0, 225, 600, 30);
// label هنا قمنا بتحديد خصائص العنوان
label.setFont(new Font("Arial", Font.PLAIN, 20));
label.setForeground(Color.WHITE);
// textField هنا قمنا بتحديد خصائص مربع النص
textField.setFont(new Font("Arial", Font.PLAIN, 18));
textField.setForeground(Color.LIGHT_GRAY);
textField.setBackground(new Color(10, 10, 10));
textField.setCaretColor(Color.WHITE);
textField.setFocusable(true);
textField.setBorder(BorderFactory.createCompoundBorder(
textField.getBorder(),
BorderFactory.createEmptyBorder(5, 5, 5, 5)));
// buttonFind هنا قمنا بتحديد خصائص الزر
buttonFind.setFont(new Font("Arial", Font.BOLD, 16));
buttonFind.setForeground(Color.LIGHT_GRAY);
buttonFind.setBackground(Color.DARK_GRAY);
buttonFind.setBorder(BorderFactory.createLineBorder(Color.GRAY, 2));
buttonFind.setFocusable(false);
// labelResult هنا قمنا بتحديد نوع و حجم خط النتيجة التي ستظهر مكان العنوان
labelResult.setFont(new Font("Arial", Font.PLAIN, 18));
// هنا قمنا بإضافة جميع الأشياء التي قمنا بإنشائها في حاوية النافذة
backgroundPanel.add(label);
backgroundPanel.add(textField);
backgroundPanel.add(buttonFind);
backgroundPanel.add(labelResult);
backgroundPanel.add(labelResult);
backgroundPanel.add(backgroundImage);
// actionPerformed() سيتم تنفيذ الأوامر الموضوعة في الدالة buttonFind هنا قلنا أنه عند النقر على الزر
buttonFind.addActionListener(this);
// هنا قمنا بإضافة الحاوية التي تحتوي على كل الأشياء التي قنما بتعريفها في النافذة
add(backgroundPanel);
// هنا قمنا بتحديد بعض خصائص النافذة و جعلناها مرئية
setTitle("IP Finder");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
// actionPerformed() للدالة Override يجب أن نفعل ,ActionListener يطبق الإنترفيس Main بما أننا جعلنا الكلاس
// Get IP لتحديد ما سيحدث عند النقر على الزر
@Override
public void actionPerformed(ActionEvent e) {
// url سيتم تخزين النص الموجود في مربع النص في الكائن
String url = textField.getText();
// labelResult إذا لم يكن مربع النص فارغاً سيحاول البرنامج الإتصال بالنت و جلب عنوان الموقع المذكور و وضعه كنص للكائن
if(!url.isEmpty())
{
try {
InetAddress address = InetAddress.getByName(url);
String ip = address.getHostAddress();
labelResult.setText(ip);
labelResult.setForeground(Color.GREEN);
}
catch (UnknownHostException ex) {
labelResult.setText("Invalid URL or Network is Down");
labelResult.setForeground(Color.RED);
}
}
// إذا كان مربع النص فارغاً عند النقر على الزر, سيتم إظهار النص التالي و تلوينه بالأحمر
else {
labelResult.setText("Please enter a valid URL in the above field");
labelResult.setForeground(Color.RED);
}
}
}
// ip_finder موجود بداخل المجلد Main.java هنا ذكرنا أن الملف package ip_finder; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.InetAddress; import java.net.UnknownHostException; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingUtilities; // و بالتالي أصبح إنشاء كائن منه يمثل إنشاء نافذة JFrame يرث من الكلاس Main هنا جعلنا الكلاس public class Main extends JFrame implements ActionListener { // هنا قمنا بتعريف الأشياء التي سيتم وضعها في النافذة JPanel backgroundPanel; JLabel label, labelResult, backgroundImage; JTextField textField; JButton buttonFind; // فقط createAndShowGUI() سيقوم الكونستركتور بإستدعاء الدالة Main عند إنشاء كائن من الكلاس public Main() { createAndShowGUI(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // التي ستنشئ النافذة createAndShowGUI() و بالتالي سيتم إستدعاء الدالة Main هنا قمنا بإنشاء كائن من الكلاس new Main(); } }); } // هنا نضع كود إنشاء النافذة و محتوياتها private void createAndShowGUI() { // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة backgroundPanel = new JPanel(null); backgroundImage = new JLabel(new ImageIcon(this.getClass().getResource("/images/world-map.png"))); label = new JLabel("Enter URL", JLabel.CENTER); textField = new JTextField(); buttonFind = new JButton("Get IP"); labelResult = new JLabel("", JLabel.CENTER); // هنا قمنا بتحديد حجم و مكان كل شيء سيتم إضافته في النافذة backgroundPanel.setPreferredSize(new Dimension(600, 340)); backgroundImage.setBounds(0, 0, 600, 340); label.setBounds(200, 75, 200, 30); textField.setBounds(200, 115, 200, 36); buttonFind.setBounds(200, 165, 200, 36); labelResult.setBounds(0, 225, 600, 30); // label هنا قمنا بتحديد خصائص العنوان label.setFont(new Font("Arial", Font.PLAIN, 20)); label.setForeground(Color.WHITE); // textField هنا قمنا بتحديد خصائص مربع النص textField.setFont(new Font("Arial", Font.PLAIN, 18)); textField.setForeground(Color.LIGHT_GRAY); textField.setBackground(new Color(10, 10, 10)); textField.setCaretColor(Color.WHITE); textField.setFocusable(true); textField.setBorder(BorderFactory.createCompoundBorder( textField.getBorder(), BorderFactory.createEmptyBorder(5, 5, 5, 5))); // buttonFind هنا قمنا بتحديد خصائص الزر buttonFind.setFont(new Font("Arial", Font.BOLD, 16)); buttonFind.setForeground(Color.LIGHT_GRAY); buttonFind.setBackground(Color.DARK_GRAY); buttonFind.setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); buttonFind.setFocusable(false); // labelResult هنا قمنا بتحديد نوع و حجم خط النتيجة التي ستظهر مكان العنوان labelResult.setFont(new Font("Arial", Font.PLAIN, 18)); // هنا قمنا بإضافة جميع الأشياء التي قمنا بإنشائها في حاوية النافذة backgroundPanel.add(label); backgroundPanel.add(textField); backgroundPanel.add(buttonFind); backgroundPanel.add(labelResult); backgroundPanel.add(labelResult); backgroundPanel.add(backgroundImage); // actionPerformed() سيتم تنفيذ الأوامر الموضوعة في الدالة buttonFind هنا قلنا أنه عند النقر على الزر buttonFind.addActionListener(this); // هنا قمنا بإضافة الحاوية التي تحتوي على كل الأشياء التي قنما بتعريفها في النافذة add(backgroundPanel); // هنا قمنا بتحديد بعض خصائص النافذة و جعلناها مرئية setTitle("IP Finder"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); pack(); setLocationRelativeTo(null); setVisible(true); } // actionPerformed() للدالة Override يجب أن نفعل ,ActionListener يطبق الإنترفيس Main بما أننا جعلنا الكلاس // Get IP لتحديد ما سيحدث عند النقر على الزر @Override public void actionPerformed(ActionEvent e) { // url سيتم تخزين النص الموجود في مربع النص في الكائن String url = textField.getText(); // labelResult إذا لم يكن مربع النص فارغاً سيحاول البرنامج الإتصال بالنت و جلب عنوان الموقع المذكور و وضعه كنص للكائن if(!url.isEmpty()) { try { InetAddress address = InetAddress.getByName(url); String ip = address.getHostAddress(); labelResult.setText(ip); labelResult.setForeground(Color.GREEN); } catch (UnknownHostException ex) { labelResult.setText("Invalid URL or Network is Down"); labelResult.setForeground(Color.RED); } } // إذا كان مربع النص فارغاً عند النقر على الزر, سيتم إظهار النص التالي و تلوينه بالأحمر else { labelResult.setText("Please enter a valid URL in the above field"); labelResult.setForeground(Color.RED); } } }

نتيجة التشغيل:

أتمنى مساعدتي بحل المشكلة.

تعليقات 1

أضف تعليق

يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة