错误:静态引用非静态方法-试图显示加密的文本

时间:2018-11-18 17:09:55

标签: class methods reference static

我正在尝试创建密码学家,但无法显示结果。我收到错误消息:minchiffer.displayText()上的“无法对类型为Cryptographer的非静态方法crypto(String)进行静态引用”。将加密方法更改为静态会使其输出错误的密码。反正有解决这个问题的方法吗?预先感谢!

主要:

public class Chiffer {
public static void main(String[] args) {

    TextWindow title = new TextWindow("Title");                 //Skapar fönster Title
    TextView klartext = new TextView("Klartext", 10, 100);      //Skapar textvy klartext
    TextView minchiffer = new TextView("Min chiffertext", 10, 100); //Skapar textvy minchiffer
    TextView chiffer = new TextView("Korrekt chiffertext", 10, 100);        //Skapar textvy chiffer

    TestCase testcase = new TestCase(); //Skapar TestCaset

    int i = 1;

    title.addView(klartext);                //  Lägger in textvyn klartext in i fönster Title
    title.addView(minchiffer);              //  Lägger in minchiffer i Title
    title.addView(chiffer);                 //  Lägger in chiffer i Title



    while (i <= 5) {


        klartext.displayText(testcase.getClearText(i));             // Printar klartext i till textvyn head
        minchiffer.displayText(Cryptographer.encrypt(testcase.getClearText(i)));    // Printar text i till textvyn head
        chiffer.displayText(testcase.getCryptoText(i));             // Printar crytpo text i till textvyn head
        title.waitForMouseClick();

        i++;
    }

}

加密类:

public class Cryptographer {    


public String encrypt(String text) {
    StringBuilder klartext = new StringBuilder(text);   //Stringbuilder klartext av text i
    StringBuilder minchiffer = new StringBuilder();                         //Stringbuilder mintext / buffert

    String s = klartext.toString();                                     // String av Stringbuilder klartext
    String ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char[] chiffer = "LKSBFMVAEYNTIOXJWCUPQDRHZG".toCharArray();
    char[] arrayklartext = s.toCharArray();             //Gör array av String s
    Key nyckel = new Key();

    for (int i=0; i < text.length(); i++) {
        int flyttsteg;  //Steg som den flyttar sig
        int q = 0; //Counter

        if (!Character.isWhitespace(arrayklartext[i])) {
            flyttsteg = nyckel.getStart() + ss.indexOf(klartext.charAt(i)) + q; //ss.indexof sätter den på bokstavens plats i alfabetet
            minchiffer.append((char) (chiffer[flyttsteg % 26])); //Sätter chifferbokstav på plats vilketnmr på klartext teckennmr
            q++;

        } else {
            minchiffer.append(' ');
            flyttsteg =+ 1;
        }
    }

    String klar = minchiffer.toString();
    return klar;

}

0 个答案:

没有答案