Member 12702056 Ответов: 1

Как я могу решить ошибку в строковом сообщении error? Пожалуйста, помогите мне


Сообщение об ошибке:
it says that "Create method minPrime in isprime.isprime.listener1"
Methods minPrime and maxPrime can not be applied given types

Я знаю, что причина этой ошибки заключается в следующем:
в функциях minPrime и maxPrime я даю такие параметры, как тип класса,поэтому, когда я хочу вызвать эти методы из - & gt; строкового сообщения, будет ошибка, как есть.но как я могу решить эту проблему?кто-нибудь может мне помочь?


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package isprime;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class isprime extends JFrame {

    private int n;

    public isprime(int n) {
        this.n = n;
    }

    public int getN() {
        return n;
    }

    public void setN(int n) {
        this.n = n;
    }

    private JLabel label1;
    private JLabel label2;
    private JButton min;
    private JButton max;
    private JTextField Box1;
    private JTextField Box2;
    

    public isprime() {
        setSize(300, 200);
        setTitle("Findingmax and min prime number in the range");
        setLayout(new FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        mine();//function prototype
    }

    public void mine() {
        label1 = new JLabel("Enter first integer");
        label2 = new JLabel("Enter second integer");
         Box1 = new JTextField(5);
        Box2 = new JTextField(5);
        min = new JButton("Min");
        max = new JButton("Max");
        //add-de istediyimiz ardicilliqda daxil edireik
        add(label1);
        add(Box1);
        add(label2);
        add(Box2);
        add(min);
        add(max);
        //action fired
        min.addActionListener(new listener1()
        );
        max.addActionListener(new listener2()
        );
    }

    private class listener1 implements ActionListener {

        private int n;

       

        public boolean isPrime(int n) {//checking is this number prime or not
            boolean answer = true;
            if (n == 2) {//because 2 is a prime number
                return answer;
            }
            for (int i = 2; i <= n / 2; i++) {//we begin from two,becuase 1 is not prime or composite
                // n/2-ye kimi yoxlamaq da kifayetdir
                if (n % i == 0) {//eger eded yalniz ozune ve bire bolunerse ,prime-dir,qalan hallarda composite
                    answer = false;//demeli prime deyil
                    break;
                }
            }
            return answer;
        }

        int nextPrime(int n) {
            n++;
            while (!isPrime(n)) {
                n++;
            }
            return n;
        }

        public int maxPrime(isprime p) {//for finding max prime number in the given range
            for (int i = this.n; i>= p.n; i--) {
                    if(this.isPrime(i))
                        return i;
                }
                        return 1;
            }
           public void actionPerformed(ActionEvent e) {
            int a;
            int b;
            try {
                a = Integer.parseInt(Box1.getText());
                b = Integer.parseInt(Box2.getText());
            } catch (Exception exc) {
                a = -1;
                b = -1;
            }
            String message = "Max prime is:" + this.maxPrime(a, b);
            JOptionPane.showMessageDialog(null, message);
        }

       

    }

    private class listener2 implements ActionListener {

        private int n;

        public int minPrime(isprime p) {//for finding min prime number in the given range
            for (int i = this.n; i <= p.n; i++) {
                    if(this.isPrime(i))
                        return i;
                }
                        return 1;
            }
           

        public boolean isPrime(int n) {//checking is this number prime or not
            boolean answer = true;
            if (n == 2) {//because 2 is a prime number
                return answer;
            }
            for (int i = 2; i <= n / 2; i++) {//we begin from two,becuase 1 is not prime or composite
                // n/2-ye kimi yoxlamaq da kifayetdir
                if (n % i == 0) {//eger eded yalniz ozune ve bire bolunerse ,prime-dir,qalan hallarda composite
                    answer = false;//demeli prime deyil
                    break;
                }
            }
            return answer;
        }

        int nextPrime(int n) {
            n++;
            while (!isPrime(n)) {
                n++;
            }
            return n;
        }

      
        public void actionPerformed(ActionEvent e) {
            int a;
            int b;
            try {
                a = Integer.parseInt(Box1.getText());
                b = Integer.parseInt(Box2.getText());
            } catch (Exception exc) {
                a = -1;
                b = -1;
            }
            String message = "Min prime is:" + this.minPrime();
            JOptionPane.showMessageDialog(null, message);
        }

        
    }

    public static void main(String[] args) {
        new isprime();
    }

}


Что я уже пробовал:

Я попытался найти max и min prime в диапазоне с помощью этого кода и графического интерфейса. который я принимаю, что this. n-это начальное число диапазона, а p.n-конечное число диапазона.я не могу решить эту ошибку, которая находится в строковом сообщении.

Patrice T

И вы планируете поделиться с нами сообщением об ошибке ?

Member 12702056

как я могу поделиться его фотографией?

Member 12702056

как я могу поделиться его фотографией?

Patrice T

Достаточно будет ввести сообщение об ошибке.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.

Member 12702056

в нем говорится, что " Создайте метод minPrime в isprime. isprime.listener1"

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Member 12702056

Спасибо, я обновил его)

1 Ответов

Рейтинг:
0

CPallini

Считать maxPrime подпись:

public int maxPrime(isprime p)
Он принимает isprime ссылка как уникальный аргумент.


Однако вы написали
int a;
int b;
// ...
String message = "Max prime is:" + this.maxPrime(a, b);
Вызов метода не соответствует его сигнатуре, отсюда и ошибка.

[обновление]
Использовать maxPrime метод вы должны создать два isprime объекты, а затем вызвать метод на одном из них, передавая другой в качестве аргумента, например
int a, b;
//...
isprime ipa = new isprime(a);
isprime ipb = new isprime(b);
int maxp = ipa.maxPrime(ipb);

[/обновление]


Member 12702056

я знаю,но я имею в виду, как я могу решить эту проблему?в моем проекте я должен использовать тип параметра isprime

CPallini

Смотрите мое обновленное решение.

Member 12702056

опять ошибки