PeselRead Java GUI any idea?

0

Hej,
muszę zrobić aplikację w java, która po wpisaniu nr pesel będzie "wydobywała" dane takie, jak:

"Wpisz pesel, poprawna ilosc cyfr to 11
xxxxxxxxxx
Rok urodzenia: xxxx
Miesiac : Lipiec
Dzien : xx
Plec : Mezczyzna
Cyfra kontrolna : x"

Jak wywołam plik z kodem w wierszu poleceń, to mam wydrukowane dane...
Kod mam, ale nie potrafię ujarzmić eclipsa, albo netbeans by w oddzielnym okienku pokazać ww. dane.
Mam taki projekt napisać na zajęcia, a przyznam szczerze, że dopiero zaczynam przygodę z java.
Czy znajdę kogoś kto mógłby mi pomóc?

1

Ale jak ktoś ma Ci pomóc jak na razie nic nie wiadomo? Co to znaczy, że nie potrafisz ujarzmić eclipse'a?
Tutaj możesz zobaczyć jak włączyć 'Console' w eclipse: http://stackoverflow.com/questions/11112670/how-to-open-console-window-in-eclipse
Zawsze możesz użyć terminala jak nie umiesz IDE.

0

To mam opanowane i na tym koniec.
Nawet w netbeans zrobię okienko, przyciski, tekst, ale nie potrafię ruszyć dalej...

0

@szweszwe Chodzi chyba o to, że zamiast cyfr mają być gwiazdki.

W konsoli ciężko raczej będzie coś takiego osiągnąć, możesz przy wprowadzaniu wrażliwych danych sczytać bufor konsoli, przeparsować i podmienić znaki, wyczyścić konsolę i wkleić swoją podmienioną wersję, rozwiązanie rodem z HELL NO Solutions ltd. Aplikacje z interfejsem konsolowym (np. Git) przy wprowadzaniu wrażliwych danych nie pokazują żadnych znaków, ale wnioskuję, że musisz osiągnąć efekt gwiazdek.

Jeśli decydujesz się na własne GUI, to tutoriali do Swinga czy JavaFX jest bardzo dużo, na pewno znajdziesz jak obsłużyć zwykłą text area.

1
dideridu napisał(a):

Jak wywołam plik z kodem w wierszu poleceń, to mam wydrukowane dane...

Pokaż swój kod.

dideridu napisał(a):

Kod mam, ale nie potrafię ujarzmić eclipsa, albo netbeans by w oddzielnym okienku pokazać ww. dane.
Mam taki projekt napisać na zajęcia, a przyznam szczerze, że dopiero zaczynam przygodę z java.
Czy znajdę kogoś kto mógłby mi pomóc?

Nie rozumiem co masz na myśli pisząc, że nie możesz ujarzmić tych dwóch IDE. Napisz, chętnie Ci pomogę.

0

Kod, który chcę wykorzystać:

import java.io.*;
import java.util.*;
 
class Pesel {
    private String NumerPesel;
    private String Miesiac;
 
    // -----------------------------------------------------------
    public Pesel(String Ciag) {
        NumerPesel = Ciag;
    }
 
    // -----------------------------------------------------------
    public String RokUrodzenia() {
        String Rok1 = "";
        String Rok2 = NumerPesel.substring(0, 2);
        Miesiac = NumerPesel.substring(2, 4);
        int Mint = 0;
        String MiesiacArr[] = { "Styczen", "Luty", "Marzec", "Kwiecien", "Maj",
                "Czerwiec", "Lipiec", "Sierpien", "Wrzesien", "Pazdziernik",
                "Listopad", "Grudzien" };
 
        if (Miesiac.equals("81")) {
            Rok1 = "18";
            Mint = 0;
        } else if (Miesiac.equals("82")) {
            Rok1 = "18";
            Mint = 1;
        } else if (Miesiac.equals("83")) {
            Rok1 = "18";
            Mint = 2;
        } else if (Miesiac.equals("84")) {
            Rok1 = "18";
            Mint = 3;
        } else if (Miesiac.equals("85")) {
            Rok1 = "18";
            Mint = 4;
        } else if (Miesiac.equals("86")) {
            Rok1 = "18";
            Mint = 5;
        } else if (Miesiac.equals("87")) {
            Rok1 = "18";
            Mint = 6;
        } else if (Miesiac.equals("88")) {
            Rok1 = "18";
            Mint = 7;
        } else if (Miesiac.equals("89")) {
            Rok1 = "18";
            Mint = 8;
        } else if (Miesiac.equals("90")) {
            Rok1 = "18";
            Mint = 9;
        } else if (Miesiac.equals("91")) {
            Rok1 = "18";
            Mint = 10;
        } else if (Miesiac.equals("92")) {
            Rok1 = "18";
            Mint = 11;
        } else if (Miesiac.equals("01")) {
            Rok1 = "19";
            Mint = 0;
        } else if (Miesiac.equals("02")) {
            Rok1 = "19";
            Mint = 1;
        } else if (Miesiac.equals("03")) {
            Rok1 = "19";
            Mint = 2;
        } else if (Miesiac.equals("04")) {
            Rok1 = "19";
            Mint = 3;
        } else if (Miesiac.equals("05")) {
            Rok1 = "19";
            Mint = 4;
        } else if (Miesiac.equals("06")) {
            Rok1 = "19";
            Mint = 5;
        } else if (Miesiac.equals("07")) {
            Rok1 = "19";
            Mint = 6;
        } else if (Miesiac.equals("08")) {
            Rok1 = "19";
            Mint = 7;
        } else if (Miesiac.equals("09")) {
            Rok1 = "19";
            Mint = 8;
        } else if (Miesiac.equals("10")) {
            Rok1 = "19";
            Mint = 9;
        } else if (Miesiac.equals("11")) {
            Rok1 = "19";
            Mint = 10;
        } else if (Miesiac.equals("11")) {
            Rok1 = "19";
            Mint = 11;
        } else if (Miesiac.equals("21")) {
            Rok1 = "20";
            Mint = 0;
        } else if (Miesiac.equals("22")) {
            Rok1 = "20";
            Mint = 1;
        } else if (Miesiac.equals("23")) {
            Rok1 = "20";
            Mint = 2;
        } else if (Miesiac.equals("24")) {
            Rok1 = "20";
            Mint = 3;
        } else if (Miesiac.equals("25")) {
            Rok1 = "20";
            Mint = 4;
        } else if (Miesiac.equals("26")) {
            Rok1 = "20";
            Mint = 5;
        } else if (Miesiac.equals("27")) {
            Rok1 = "20";
            Mint = 6;
        } else if (Miesiac.equals("28")) {
            Rok1 = "20";
            Mint = 7;
        } else if (Miesiac.equals("29")) {
            Rok1 = "20";
            Mint = 8;
        } else if (Miesiac.equals("30")) {
            Rok1 = "20";
            Mint = 9;
        } else if (Miesiac.equals("31")) {
            Rok1 = "20";
            Mint = 10;
        } else if (Miesiac.equals("32")) {
            Rok1 = "20";
            Mint = 11;
        } else if (Miesiac.equals("41")) {
            Rok1 = "21";
            Mint = 0;
        } else if (Miesiac.equals("42")) {
            Rok1 = "21";
            Mint = 1;
        } else if (Miesiac.equals("43")) {
            Rok1 = "21";
            Mint = 2;
        } else if (Miesiac.equals("44")) {
            Rok1 = "21";
            Mint = 3;
        } else if (Miesiac.equals("45")) {
            Rok1 = "21";
            Mint = 4;
        } else if (Miesiac.equals("46")) {
            Rok1 = "21";
            Mint = 5;
        } else if (Miesiac.equals("47")) {
            Rok1 = "21";
            Mint = 6;
        } else if (Miesiac.equals("48")) {
            Rok1 = "21";
            Mint = 7;
        } else if (Miesiac.equals("49")) {
            Rok1 = "21";
            Mint = 8;
        } else if (Miesiac.equals("50")) {
            Rok1 = "21";
            Mint = 9;
        } else if (Miesiac.equals("51")) {
            Rok1 = "21";
            Mint = 10;
        } else if (Miesiac.equals("52")) {
            Rok1 = "21";
            Mint = 11;
        } else if (Miesiac.equals("61")) {
            Rok1 = "22";
            Mint = 0;
        } else if (Miesiac.equals("62")) {
            Rok1 = "22";
            Mint = 1;
        } else if (Miesiac.equals("63")) {
            Rok1 = "22";
            Mint = 2;
        } else if (Miesiac.equals("64")) {
            Rok1 = "22";
            Mint = 3;
        } else if (Miesiac.equals("65")) {
            Rok1 = "22";
            Mint = 4;
        } else if (Miesiac.equals("66")) {
            Rok1 = "22";
            Mint = 5;
        } else if (Miesiac.equals("67")) {
            Rok1 = "22";
            Mint = 6;
        } else if (Miesiac.equals("68")) {
            Rok1 = "22";
            Mint = 7;
        } else if (Miesiac.equals("69")) {
            Rok1 = "22";
            Mint = 8;
        } else if (Miesiac.equals("70")) {
            Rok1 = "22";
            Mint = 9;
        } else if (Miesiac.equals("71")) {
            Rok1 = "22";
            Mint = 10;
        } else if (Miesiac.equals("72")) {
            Rok1 = "22";
            Mint = 11;
        }
 
        Miesiac = MiesiacArr[Mint];
        return Rok1 + Rok2;
    }
 
    // -----------------------------------------------------------
    public String MiesiacUrodzenia() {
        return Miesiac;
    }
    // -----------------------------------------------------------
    public String DzienUrodzenia() {
        return NumerPesel.substring(4, 6);
    }
 
 
    // -----------------------------------------------------------
    public String Plec() {
        int Cyfra = Integer.parseInt(NumerPesel.substring(10, 11));
        String Plec = "";
        if ((Cyfra % 2) == 0)
            Plec = "Kobiety";
        else
            Plec = "Mezczyzny";
        return Plec;
    }
 
    // -----------------------------------------------------------
    public String NumerSeryjny() {
        return NumerPesel.substring(6, 10);
    }
    // -----------------------------------------------------------
 
}
 
// //////////////////////////////////////////////////////////////
 
class PeselRead {
    // -----------------------------------------------------------
    public static void main(String[] args) throws IOException {
        Pesel psl;
 
        print("Wpisz jedenastocyfrowy numer PESEL");
        BufferedReader stdin = new BufferedReader(new InputStreamReader(
                System.in), 1);
        String str = stdin.readLine();
        int dlugosc = str.length();
        if (dlugosc != 11)
            print("Niepoprawna ilosc znakow=" + dlugosc
                    + ", Poprawna ilosc znakow=11");
        else {
            psl = new Pesel(str);
            print("Rok urodzenia: " + psl.RokUrodzenia());
            print("Miesiac urodzenia : " + psl.MiesiacUrodzenia());
            print("Dzien urodzenia: " + psl.DzienUrodzenia());
            print("Pesel nalezy do : " + psl.Plec());
        }
    }
 
    private static void print(String str) {
        System.out.println(str);
    }
}
0

I tu mam tyle kodu:

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
//-------------------------------------------------------------------------

public class ReadPesel extends JFrame implements ActionListener{

	JButton Przycisksprawdz, Przyciskwyjscie;
	JLabel NapisRok, NapisMiesiac, NapisDzien, NapisPlec, NapisPesel;
	JTextField NumerPesel;
//-------------------------------------------------------------------------
	public ReadPesel()
	{

		setSize(500,300);
		setTitle("Aplikacja do sprawdzania nr PESEL");
		setLayout(null);
		
		NapisPesel = new JLabel ("Wpisz jedenastocyfrowy nr PESEL: ");
		NapisPesel.setBounds(10,100,100,20);
		NapisPesel.setForeground(Color.MAGENTA);
		NapisPesel.setFont(new Font("SansSerif",Font.BOLD,10));
		add(NapisPesel);
		
		NumerPesel = new JTextField("");
		NumerPesel.setBounds(10, 100, 100, 20);
		add(NumerPesel);
		
		Przycisksprawdz = new JButton("Sprawdź");
		Przycisksprawdz.setBounds(100,200,100,20);
		add(Przycisksprawdz);
		Przycisksprawdz.addActionListener(this);
		
		Przyciskwyjscie = new JButton("Wyjście");
		Przyciskwyjscie.setBounds(300,200,100,20);
		add(Przyciskwyjscie);
		Przyciskwyjscie.addActionListener(this);
		
		NapisRok.setBounds(50,100,100,20);
		NapisRok.setForeground(Color.MAGENTA);
		NapisRok.setFont(new Font("SansSerif",Font.BOLD,10));
		add(NapisRok);
		
		NapisMiesiac.setBounds(100,100,100,20);
		NapisMiesiac.setForeground(Color.MAGENTA);
		NapisMiesiac.setFont(new Font("SansSerif",Font.BOLD,10));
		add(NapisMiesiac);
		
		NapisDzien.setBounds(150,100,100,20);
		NapisDzien.setForeground(Color.MAGENTA);
		NapisDzien.setFont(new Font("SansSerif",Font.BOLD,10));
		add(NapisDzien);
		
		NapisPlec.setBounds(200,100,100,20);
		NapisPlec.setForeground(Color.MAGENTA);
		NapisPlec.setFont(new Font("SansSerif",Font.BOLD,10));
		add(NapisPlec);
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
	    final String Numer_Pesel;
	    final String Miesiace;
	 
// -----------------------------------------------------------
	    class PeselRead(String Ciag) 
	    {
	        Numer_Pesel = Ciag;
	    }
// -----------------------------------------------------------
	    public String Rok_Urodzenia() {
	        String Rok1 = "";
	        String Rok2 = Numer_Pesel.substring(0, 2);
	        Miesiace = Numer_Pesel.substring(2, 4);
	        int Mint = 0;
	        String MiesiacArr[] = { "Styczen", "Luty", "Marzec", "Kwiecien", "Maj",
	                "Czerwiec", "Lipiec", "Sierpien", "Wrzesien", "Pazdziernik",
	                "Listopad", "Grudzien" };
	 
	        if (Miesiace.equals("81")) {
	            Rok1 = "18";
	            Mint = 0;
	        } else if (Miesiace.equals("82")) {
	            Rok1 = "18";
	            Mint = 1;
	        } else if (Miesiace.equals("83")) {
	            Rok1 = "18";
	            Mint = 2;
	        } else if (Miesiace.equals("84")) {
	            Rok1 = "18";
	            Mint = 3;
	        } else if (Miesiace.equals("85")) {
	            Rok1 = "18";
	            Mint = 4;
	        } else if (Miesiace.equals("86")) {
	            Rok1 = "18";
	            Mint = 5;
	        } else if (Miesiace.equals("87")) {
	            Rok1 = "18";
	            Mint = 6;
	        } else if (Miesiace.equals("88")) {
	            Rok1 = "18";
	            Mint = 7;
	        } else if (Miesiace.equals("89")) {
	            Rok1 = "18";
	            Mint = 8;
	        } else if (Miesiace.equals("90")) {
	            Rok1 = "18";
	            Mint = 9;
	        } else if (Miesiace.equals("91")) {
	            Rok1 = "18";
	            Mint = 10;
	        } else if (Miesiace.equals("92")) {
	            Rok1 = "18";
	            Mint = 11;
	        } else if (Miesiace.equals("01")) {
	            Rok1 = "19";
	            Mint = 0;
	        } else if (Miesiace.equals("02")) {
	            Rok1 = "19";
	            Mint = 1;
	        } else if (Miesiace.equals("03")) {
	            Rok1 = "19";
	            Mint = 2;
	        } else if (Miesiace.equals("04")) {
	            Rok1 = "19";
	            Mint = 3;
	        } else if (Miesiace.equals("05")) {
	            Rok1 = "19";
	            Mint = 4;
	        } else if (Miesiace.equals("06")) {
	            Rok1 = "19";
	            Mint = 5;
	        } else if (Miesiace.equals("07")) {
	            Rok1 = "19";
	            Mint = 6;
	        } else if (Miesiace.equals("08")) {
	            Rok1 = "19";
	            Mint = 7;
	        } else if (Miesiace.equals("09")) {
	            Rok1 = "19";
	            Mint = 8;
	        } else if (Miesiace.equals("10")) {
	            Rok1 = "19";
	            Mint = 9;
	        } else if (Miesiace.equals("11")) {
	            Rok1 = "19";
	            Mint = 10;
	        } else if (Miesiace.equals("11")) {
	            Rok1 = "19";
	            Mint = 11;
	        } else if (Miesiace.equals("21")) {
	            Rok1 = "20";
	            Mint = 0;
	        } else if (Miesiace.equals("22")) {
	            Rok1 = "20";
	            Mint = 1;
	        } else if (Miesiace.equals("23")) {
	            Rok1 = "20";
	            Mint = 2;
	        } else if (Miesiace.equals("24")) {
	            Rok1 = "20";
	            Mint = 3;
	        } else if (Miesiace.equals("25")) {
	            Rok1 = "20";
	            Mint = 4;
	        } else if (Miesiace.equals("26")) {
	            Rok1 = "20";
	            Mint = 5;
	        } else if (Miesiace.equals("27")) {
	            Rok1 = "20";
	            Mint = 6;
	        } else if (Miesiace.equals("28")) {
	            Rok1 = "20";
	            Mint = 7;
	        } else if (Miesiace.equals("29")) {
	            Rok1 = "20";
	            Mint = 8;
	        } else if (Miesiace.equals("30")) {
	            Rok1 = "20";
	            Mint = 9;
	        } else if (Miesiace.equals("31")) {
	            Rok1 = "20";
	            Mint = 10;
	        } else if (Miesiace.equals("32")) {
	            Rok1 = "20";
	            Mint = 11;
	        } else if (Miesiace.equals("41")) {
	            Rok1 = "21";
	            Mint = 0;
	        } else if (Miesiace.equals("42")) {
	            Rok1 = "21";
	            Mint = 1;
	        } else if (Miesiace.equals("43")) {
	            Rok1 = "21";
	            Mint = 2;
	        } else if (Miesiace.equals("44")) {
	            Rok1 = "21";
	            Mint = 3;
	        } else if (Miesiace.equals("45")) {
	            Rok1 = "21";
	            Mint = 4;
	        } else if (Miesiace.equals("46")) {
	            Rok1 = "21";
	            Mint = 5;
	        } else if (Miesiace.equals("47")) {
	            Rok1 = "21";
	            Mint = 6;
	        } else if (Miesiace.equals("48")) {
	            Rok1 = "21";
	            Mint = 7;
	        } else if (Miesiace.equals("49")) {
	            Rok1 = "21";
	            Mint = 8;
	        } else if (Miesiace.equals("50")) {
	            Rok1 = "21";
	            Mint = 9;
	        } else if (Miesiace.equals("51")) {
	            Rok1 = "21";
	            Mint = 10;
	        } else if (Miesiace.equals("52")) {
	            Rok1 = "21";
	            Mint = 11;
	        } else if (Miesiace.equals("61")) {
	            Rok1 = "22";
	            Mint = 0;
	        } else if (Miesiace.equals("62")) {
	            Rok1 = "22";
	            Mint = 1;
	        } else if (Miesiace.equals("63")) {
	            Rok1 = "22";
	            Mint = 2;
	        } else if (Miesiace.equals("64")) {
	            Rok1 = "22";
	            Mint = 3;
	        } else if (Miesiace.equals("65")) {
	            Rok1 = "22";
	            Mint = 4;
	        } else if (Miesiace.equals("66")) {
	            Rok1 = "22";
	            Mint = 5;
	        } else if (Miesiace.equals("67")) {
	            Rok1 = "22";
	            Mint = 6;
	        } else if (Miesiace.equals("68")) {
	            Rok1 = "22";
	            Mint = 7;
	        } else if (Miesiace.equals("69")) {
	            Rok1 = "22";
	            Mint = 8;
	        } else if (Miesiace.equals("70")) {
	            Rok1 = "22";
	            Mint = 9;
	        } else if (Miesiace.equals("71")) {
	            Rok1 = "22";
	            Mint = 10;
	        } else if (Miesiace.equals("72")) {
	            Rok1 = "22";
	            Mint = 11;
	        }
	 
	        Miesiace = MiesiacArr[Mint];
	        return Rok1 + Rok2;
	    }
	 
	    // -----------------------------------------------------------
	    public String MiesiacUrodzenia() {
	        return Miesiace;
	    }
	    // -----------------------------------------------------------
	    public String DzienUrodzenia() {
	        return Numer_Pesel.substring(4, 6);
	    }
	 
	 
	    // -----------------------------------------------------------
	    public String Plec() {
	        int Cyfra = Integer.parseInt(Numer_Pesel.substring(10, 11));
	        String Plec = "";
	        if ((Cyfra % 2) == 0)
	            Plec = "Kobiety";
	        else
	            Plec = "Mezczyzny";
	        return Plec;
	    }
	}
	 
	    // -----------------------------------------------------------
		
	}

	private void RokUrodzenia() {
		
	}

	public static void main(String[] args) 
	{
		ReadPesel okienko = new ReadPesel();
		okienko.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		okienko.setVisible(true);
	}

	public void actionPerformed(ActionEvent e) 
	{
		Object źródło = e.getSource();
		if (źródło==Przycisksprawdz)
		{
			NapisRok.setText("Rok urodzenia: " + NapisRok);
			NapisMiesiac.setText("Miesiąc urodzenia: " + NapisMiesiac);
			NapisDzien.setText("Dzień urodzenia: " + NapisDzien);
			NapisPlec.setText("Płeć: " + NapisPlec);

		}
		else if (źródło==Przyciskwyjscie)
		{
			dispose();
		}
	}
	
}

I w dodatku wyskakuje mi komunikat:

**Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error on token "(", { expected
Syntax error on token "Ciag", ( expected after this token
Syntax error, insert "}" to complete ClassBody

at ReadPesel.<init>(ReadPesel.java:70)
at ReadPesel.main(ReadPesel.java:302)**

Proszę o podpowiedzi.

1

Powiem tak, musisz zoptymalizować ten kod. Używanie tak dużej ilości instrukcji warunkowych nie jest dobrą praktyką. To po pierwsze. Po drugie, nie używaj polskich nazw w kodzie. Tylko i wyłącznie język angielski. Nazwy zmiennych według poprawnego nazewnictwa pisz z małej litery.
Co do dużej ilości if-else. Pomyśl, jak możesz zoptymalizować do mniejszej ilości kodu te warunki używając operatorów porównawczych i logicznych.

@

Dla przykładu:
Zamiast

} else if (Miesiac.equals("61")) {
            Rok1 = "22";
            Mint = 0;
        } else if (Miesiac.equals("62")) {
            Rok1 = "22";
            Mint = 1;
        } else if (Miesiac.equals("63")) {
            Rok1 = "22";
            Mint = 2;
        } else if (Miesiac.equals("64")) {
            Rok1 = "22";
            Mint = 3;
        } else if (Miesiac.equals("65")) {
            Rok1 = "22";
            Mint = 4;
        } else if (Miesiac.equals("66")) {
            Rok1 = "22";
            Mint = 5;
        } else if (Miesiac.equals("67")) {
            Rok1 = "22";
            Mint = 6;
        } else if (Miesiac.equals("68")) {
            Rok1 = "22";
            Mint = 7;
        } else if (Miesiac.equals("69")) {
            Rok1 = "22";
            Mint = 8;
        } else if (Miesiac.equals("70")) {
            Rok1 = "22";
            Mint = 9;
        } else if (Miesiac.equals("71")) {
            Rok1 = "22";
            Mint = 10;
        } else if (Miesiac.equals("72")) {
            Rok1 = "22";
            Mint = 11;
        } 

Można

		
} else if (month > 60 && month < 73) {
			month -= 60;
}

W 70 linijce, w której wyskakuje Ci błąd, masz utworzoną nową klasę z nawiasami (); i tutaj leży Twój błąd.

        
class PeselRead(String Ciag) 
        {
            Numer_Pesel = Ciag;
}
         

Klasa posiada tylko i wyłącznie nawiasy {}, w których znajdują deklaracje pól i metod.

1 użytkowników online, w tym zalogowanych: 0, gości: 1