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

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

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

الكود:

// 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

أضف تعليق

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