Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

GUI Rownania kwadratowego, problem z wypisaniem wyniku


Rekomendowane odpowiedzi

Opublikowano
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 RownanieKwadratoweGUI extends JFrame implements ActionListener

{

    JTextField tA,tB,tC,tWynik;

    JButton bWyjscie,bRozwiaz;

    JLabel lA,lB,lC;

    

    public RownanieKwadratoweGUI()

    {

        setTitle("Rownanie Kwadratowe");

        setSize(400,400);

        setLayout(null);

        

        lA=new JLabel("a :");

        lA.setBounds(50,50,60,60);

        add(lA);

        

        lB=new JLabel("b");

        lB.setBounds(150,50,60,60);

        add(lB);

        

        lC=new JLabel("c");

        lC.setBounds(250,50,60,60);

        add(lC);

        

        tA=new JTextField();

        tA.setBounds(70,70,60,20);

        add(tA);

        

        tB=new JTextField();

        tB.setBounds(170,70,60,20);

        add(tB);

        

        tB=new JTextField();

        tB.setBounds(270,70,60,20);

        add(tB);

        

        bRozwiaz =new JButton("Rozwiąż");

        bRozwiaz.setBounds(70,150,100,50);

        add(bRozwiaz);

        bRozwiaz.addActionListener(this);

        

        bWyjscie=new JButton("Wyjscie");

        bWyjscie.setBounds(230,150,100,50);

        add(bWyjscie);

        bWyjscie.addActionListener(this);

        

        tWynik=new JTextField();

        tWynik.setBounds(70,250,250,30);

        add(tWynik);

    }

    

    

    

    

    @Override

    public void actionPerformed(ActionEvent e)

    {

        Object event=e.getSource();

        if(event==bWyjscie)dispose();

        else if(event==bRozwiaz)

        {

            double a= Double.parseDouble(tA.getText());

            double b=Double.parseDouble(tB.getText());

            double c=Double.parseDouble(tC.getText());

            double x1,x2,x0,delta;

            String wynik;

            if(c==0)c=1;

            delta=Math.sqrt(b*b-4*a*c);

        

            if(delta>0)

            {

                x1=(-b+delta)/(2*a);

                x2=(-b-delta)/(2*a);

                wynik="x1:"+x1+" x2: "+x2;

                tWynik.setText(wynik);

            

            }

            else if(delta==0)

            {

                x0=-b/2*a;

                wynik="x0 wynosi:"+x0;

                tWynik.setText(wynik);

            }

            else if(delta<0)

            {

                wynik="rownanie nie ma pierwiastkow rzeczysiwtych";

                tWynik.setText(wynik);

            }

        }

    }









    public static void main(String[] args)

    {

        RownanieKwadratoweGUI app = new RownanieKwadratoweGUI();

        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        app.setVisible(true);

    }





}

 

mam problem z konwersja? wynikow w postacji stringu.

jakies wskazowki?

p.S a doklaniej chodzi o ten blok kodu:

 

else if(event==bRozwiaz)
        {
            double a= Double.parseDouble(tA.getText());
            double b=Double.parseDouble(tB.getText());
            double c=Double.parseDouble(tC.getText());
            double x1,x2,x0,delta;
            String wynik;
            if(c==0)c=1;
            delta=Math.sqrt(b*b-4*a*c);
        
            if(delta>0)
            {
                x1=(-b+delta)/(2*a);
                x2=(-b-delta)/(2*a);
                wynik="x1:"+x1+" x2: "+x2;
                tWynik.setText(wynik);
            
            }
            else if(delta==0)
            {
                x0=-b/2*a;
                wynik="x0 wynosi:"+x0;
                tWynik.setText(wynik);
            }
            else if(delta<0)
            {
                wynik="rownanie nie ma pierwiastkow rzeczysiwtych";
                tWynik.setText(wynik);
            }
Opublikowano

Nie rozumiem, możesz powiedzieć o co Ci dokładnie chodzi? I nie musisz sadzić enter co każdą linijkę, strasznie mało przejrzyście to wygląda.

2mmtzeu.jpg

Opublikowano

Tam gdzie probuje wyprowadzic wynik w postaci string dostaje blad. Za kazdyn razem. W osobnej klasie gdzie uzywalem tej postaci do wypisywania w konsoli. A tutaj w pole jTextField musze wprowadzic wartosc textowa, w jaki sposob musze zmienic x1/x2/x0 by nie wyrzucalo bledow?

Opublikowano

Weź porządnie opisz o co Ci chodzi, bo w tym momencie, jeśli dobrze rozumiem, to to Ci nie działa:



                x1=(-b+delta)/(2*a);
                x2=(-b-delta)/(2*a);
                wynik="x1:"+x1+" x2: "+x2;
                tWynik.setText(wynik);

A powinno. Nie ma tu błędu. Daj dokładnie treść błędu, jaki się pojwia przy próbie kompilacji.

708121422388637873334.png

Opublikowano

Niestety niemam takiej mozliwosci gdyz jestem poza domem.

 

Blad odnosil sie do tej liniki(do kazdej tam gdzie uzylem)

tWynik.setText(wynik);

Mowisz ze kod jest dobry, skopiuj go do eclipse lub innego, i sam sie przekonaj. Po nacisnieciu przycisku wyrzuca bledy w konsoli w eclipse.

Opublikowano




        tA=new JTextField();

        tA.setBounds(70,70,60,20);

        add(tA);



        tB=new JTextField();

        tB.setBounds(170,70,60,20);

        add(tB);



        tB=new JTextField();

        tB.setBounds(270,70,60,20);

        add(tB);

Troszkę głupi błąd.

708121422388637873334.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...