• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java błędy w cmd

VPS Starter Arubacloud
0 głosów
216 wizyt
pytanie zadane 13 marca 2019 w Sprzęt komputerowy przez krystian1997 Obywatel (1,020 p.)

Mam problem z kompilacją projektu javy w konsoli. W NetBeansie program działa bezbłędnie natomiast w wierszu polecenia już nie

package bmiGui;
import javax.swing.*;

import java.util.Scanner;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;

/**
 *
 * @author Krystian
 */
public class bmiGui extends JFrame implements ActionListener
{
    private JTextField tImie, tWiek, tWzrost, tWaga, tWynik;
    private JLabel lImie, lWiek, lWzrost, lWaga, lWynik, lCm, lKg, loutput, lInfo;
    private JButton bWyjście, bOblicz ,bNorma;
    private JTextArea output = new JTextArea(6,30);

    public bmiGui()
    {
        setSize(800,500);
        setTitle("Kalkulator BMI");
        setLayout(null);

        lImie = new JLabel("Podaj swoje imię:", JLabel.RIGHT);
        lImie.setBounds(30, 60, 100, 50);
        tImie = new JTextField();
        tImie.setBounds(200, 70, 150, 30);

        lWiek = new JLabel("Podaj swój wiek: ", JLabel.RIGHT);
        lWiek.setBounds(30, 110, 100, 50);
        tWiek = new JTextField();
        tWiek.setBounds(200, 120, 150, 30);

        lWzrost = new JLabel("Podaj swój wzrost:    ", JLabel.RIGHT);
        lWzrost.setBounds(30, 160, 120, 50);
        tWzrost = new JTextField();
        tWzrost.setBounds(200, 170, 150, 30);

        lWaga = new JLabel("Podaj swoją wagę:    ", JLabel.RIGHT);
        lWaga.setBounds(30, 220, 120, 50);
        tWaga = new JTextField();
        tWaga.setBounds(200, 230, 150, 30);

        loutput = new JLabel("Wynik:", JLabel.RIGHT);
        loutput.setBounds(339, 10, 100, 100);
        output = new JTextArea();
        output.setEditable(false);
        output.setBounds(400, 80, 300, 200);

        lInfo = new JLabel("Kalkulator BMI", JLabel.HEIGHT);
        lInfo.setBounds(650, 400, 130, 100);

        lCm = new JLabel("cm", JLabel.RIGHT);
        lCm.setBounds(30, 160, 340, 50);
        lKg = new JLabel("kg", JLabel.RIGHT);
        lKg.setBounds(30, 220, 336, 50);

        add(lImie);
        add(tImie);
        add(tWiek);
        add(lWiek);
        add(tWzrost);
        add(lWzrost);
        add(lCm);
        add(lKg);
        add(lWaga);
        add(tWaga);
        add(output);
        add(loutput);
        add(lInfo);

        bOblicz = new JButton("Oblicz BMI");
        bOblicz.setBounds(250, 300, 100, 50);
        bOblicz.addActionListener(this);

        bWyjście = new JButton("Wyjście z programu");
        bWyjście.setBounds(550, 380, 200, 60);
        bWyjście.addActionListener(this);

        bNorma = new JButton("Podaj normę");
        bNorma.setBounds(250, 360, 150, 50);
        bNorma.addActionListener(this);

        add(bOblicz);
        add(bWyjście);
        add(bNorma);
    }

    @Override
    public void actionPerformed(ActionEvent e) 
    {
        Object źródło = e.getSource();
        if (źródło==bWyjście)
        {
            dispose();
        }
        else if (źródło==bOblicz)
        {
            bOblicz.addActionListener(new Liczydlo());  
        }
        else if (źródło==bNorma)
        {
            output.setText("Indeks BMI powinień mieścić się w \n przedziale od 18 do 25 punktów. \n \n Wynik poniżej 18 punktów oznacza niedowagę. "
                    + "\n Nadwaga i otyłość zaczyna się od 25 punktów"
                    + "\n \n Jeżeli Twój wynik jest wyższy lub niższy \n powinieneś skonsultować się z lekarzem");
        }
    }

    public static void main(String[] args) 

    {
        bmiGui app = new bmiGui();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.setVisible(true);                        
    }

    class Liczydlo implements ActionListener
       {
           public void actionPerformed(ActionEvent ae)
           {
               output.setText("");
               String answer = "";
               int wiek = 0;
               double wzrost = 0.0;
               double waga = 0.0;
               boolean ok = true;
               try
               {
                   wiek = Integer.parseInt(tWiek.getText().trim());
                   waga = Double.parseDouble(tWaga.getText());
                   wzrost = Double.parseDouble(tWzrost.getText());           
               }           
               catch(Exception e)
               {
                   ok = false;
               }
               if(ok)
               {
                   double bmi = (waga/Math.pow(wzrost/100,2));
                   if(bmi<16)
                   {
                       output.setText("Witaj " +tImie.getText()+"!" + "\n\nTwój indeks BMI wynosi: " + bmi + " \n\n "
                                + "Twój indeks BMI jest skrajnie niski. \n Koniecznie skonsultuj się z lekarzem!");
                   }
                   else if(bmi<18)
                   {
                       output.setText("Witaj " +tImie.getText()+"!" + "\n\nTwój indeks BMI wynosi: " + bmi + " \n\n "
                            + "Niestety Twój indeks BMI jest za niski. \n Zmiana trybu życia i zdrowsza dieta powinna pomóc");
                   }
                   else if (bmi>25 && bmi<=30)
                   {
                       output.setText("Witaj " +tImie.getText()+"!" + "\n\nTwój indeks BMI wynosi: " + bmi + " \n\n "
                                + "Niestety Twój indeks BMI jest za wysoki. \n Zmień tryb życia, pora na odchudzanie!");
                   }
                   else if (bmi>30 && bmi<=35)
                   {
                       output.setText("Witaj " +tImie.getText()+"!" + "\n\nTwój indeks BMI wynosi: " + bmi + " \n\n "
                                + "Niestety Twój indeks BMI jest za za wysoki. \n Jest to I stopień otyłości! \n "
                                + "Powinieneś udać się do dietetyka");
                   }
                   else if (bmi>=35)
                   {
                       output.setText("Witaj " +tImie.getText()+"!" + "\n\nTwój indeks BMI wynosi: " + bmi + " \n\n "
                                + "Niestety Twój indeks BMI jest za za wysoki. \n Jest to II stopień otyłości! \n "
                                + "Natychmiast zmień swoją dietę! Wizyta u dietetyka jest konieczna");
                   }
                   else
                   {
                       output.setText("Witaj " +tImie.getText()+"!" + "\n\nTwój indeks BMI wynosi: " + bmi + " \n\n "
                                + "Gratulacje, Twój indeks BMI jest w normie!\n Tak trzymaj!");
                   }
               }
               else
               {
                   output.setText(tImie.getText()+"Podaj prawidłowe dane: ");
               }
           }
       }       
    }

2 odpowiedzi

+2 głosów
odpowiedź 15 marca 2019 przez Zibi Obywatel (1,220 p.)
Brakuje określenia kodowania znaków które w IDE jest robione automatycznie. Może je w konsoli podać następująco:

javac -encoding UTF8 bmiGui.java

Pamiętaj, że standardowo nazwy klas zaczynają się się dużą literą np. BmiGui
–2 głosów
odpowiedź 15 marca 2019 przez mbabane Szeryf (79,280 p.)
Nie używaj znaków diakrytycznych w kodzie.
komentarz 15 marca 2019 przez krystian1997 Obywatel (1,020 p.)
Jeśli chodzi o polskie znaki to muszę ich używać, jest do tego polecenie w konsoli i nie ma z tym problemów.
komentarz 15 marca 2019 przez mbabane Szeryf (79,280 p.)
Czemu musisz uzywac? Chodzi mi o nazwy zmiennych.
komentarz 19 marca 2019 przez krystian1997 Obywatel (1,020 p.)
W zmiennych akurat nie. Musiałem się pomylić

Podobne pytania

0 głosów
2 odpowiedzi 1,778 wizyt
pytanie zadane 6 marca 2019 w Java przez krystian1997 Obywatel (1,020 p.)
0 głosów
2 odpowiedzi 193 wizyt
pytanie zadane 25 czerwca 2018 w Java przez Lampards Obywatel (1,130 p.)
0 głosów
1 odpowiedź 170 wizyt

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...