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

Java błędy w cmd

Object Storage Arubacloud
0 głosów
223 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,806 wizyt
pytanie zadane 6 marca 2019 w Java przez krystian1997 Obywatel (1,020 p.)
0 głosów
2 odpowiedzi 195 wizyt
pytanie zadane 25 czerwca 2018 w Java przez Lampards Obywatel (1,130 p.)
0 głosów
1 odpowiedź 171 wizyt

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...