Java - problem z wpisywaniem wartości w pole TextField

0

Witam mam kod programu, działa lecz jest mały problem odnośnie sprawdzania danych wprowadzanych do pola TextField
oto kod:

 package bryly;


/* 
 * To change this template, choose Tools | Templates 
 * and open the template in the editor. 
 */
 
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.*;
 
public class bryly {
 
    /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {
        
     oknoglowne oknopr = new oknoglowne();

      
    
    }
 
    private static class oknoglowne {
        

        String    lista1[] = { "", "Czworościan", "Prostopadłościan", "Kula",
                                   "Stożek" };
        JComboBox Jlista;
        JTextField pole1, pole2, pole3;
        JLabel     tpole1, tpole2, tpole3, tpole4, tpole5, wpole1, wpole2;
 
        public oknoglowne()
 
        {
            JFrame okno = new JFrame("Bryłki");
            okno.setResizable(false);
            okno.setSize(500, 400);
          
    
    
 
            okno.setLocationByPlatform(true);
            okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
            JPanel panel = new JPanel();
            panel.setLayout(null);
            //zmiana koloru okna głównego
            panel.setBackground(Color.white);  
    
            // dodanie JComboBox z listą elementów
            Jlista = new JComboBox(lista1);
            Jlista.setBounds(50, 15, 200, 25);
            //zmiana koloru listy tla combobox
            Jlista.setBackground(Color.green);
 
            JButton klik = new JButton("Obliczaj");
            klik.setBounds(50, 200, 200, 35);
            klik.setVisible(true);
            //zmiana koloru przycisku obliczaj
            klik.setBackground(Color.orange);
 
            // dodanie JLabel do opisywania tekstów
            tpole1 = new JLabel("Tu podajemy dane");
            tpole1.setBounds(20, 50, 200, 25);
            tpole2 = new JLabel("Tu podajemy dane ");
            tpole2.setBounds(20, 75, 200, 25);
            tpole3 = new JLabel("Tu podajemy dane ");
            tpole3.setBounds(20, 100, 200, 25);
            tpole4 = new JLabel(
                    "Wykonał : Kamil Barcikowski ");
            tpole4.setBounds(10, 50, 600, 525);
              
            // dodanie JLabel do opisywania tekstów
            wpole1 = new JLabel("");
            wpole1.setBounds(20, 125, 300, 45);
            wpole2 = new JLabel("");
            wpole2.setBounds(20, 150, 300, 45);
 
            // dodanie JTextFiled okienka do wprowadzania danych
            pole1 = new JTextField("");
            pole1.setBounds(255, 50, 100, 25);
            //zmiana koloru pola wpisywania danych
            pole1.setBackground(Color.yellow);
            pole2 = new JTextField("");
            pole2.setBounds(255, 75, 100, 25);
            pole2.setBackground(Color.yellow);
            pole3 = new JTextField("");
            pole3.setBounds(255, 100, 100, 25);
            pole3.setBackground(Color.yellow);
            // nasłuchiwanie listy JComboBox
            Jlista.addActionListener(new ActionListener() {
 
                public void actionPerformed(ActionEvent e) {
                    int nr_lista1 = Jlista.getSelectedIndex();
 
                    switch (nr_lista1) {
 
                        case 0:// pierwsza figura
                            wpole1.setText("Wybierz figurę!!!");
                            pole1.setText("");
                            pole2.setText("");
                            pole3.setText("");
                            pole3.setVisible(false);
                            pole2.setVisible(false);
                            pole1.setVisible(false);
                            tpole1.setText("");
                         
                            tpole2.setText("");
                            tpole3.setText("");
                            wpole2.setText("");
 
                            break;
 
                        case 1:// pierwsza figura
                            pole1.setText("");
                            wpole1.setText("Pole całkowite =");
                            wpole2.setText("Objętość = ");
                            tpole1.setText("Długość boku a =");
                            tpole2.setText("");
                            tpole3.setText("");
                            pole3.setVisible(false);
                            pole2.setVisible(false);
                            pole1.setVisible(true);
 
                            break;
                        case 2:// druga figura
                            pole1.setText("");
                            pole2.setText("");
                            pole3.setText("");
                            wpole1.setText("Pole =");
                            tpole1.setText("Długość boku a =");
                            tpole2.setText("Długość boku b =");
                            tpole3.setText("Długość boku c =");
                            wpole1.setText("Pole całkowite =");
                            wpole2.setText("Objętość = ");
                            pole1.setVisible(true);
                            pole2.setVisible(true);
                            pole3.setVisible(true);
                            break;
 
                        case 3:// druga figura
                            pole1.setText("");
 
                            wpole1.setText("Pole całkowite =");
                            tpole1.setText("Promień r=");
                            pole3.setVisible(false);
                            pole2.setVisible(false);
                            wpole2.setText("Objętość = ");
                            tpole2.setText("");
                            tpole3.setText("");
                            pole1.setVisible(true);
                            break;
 
                        case 4:
                            pole1.setText("");
                            pole2.setText("");
                            pole3.setText("");
                            wpole1.setText("Pole =");
                            tpole1.setText("Długość bopromienia r =");
                            tpole2.setText("Długość tworzącej      l =");
                            tpole3.setText("Wysokość                     h = ");
                            wpole1.setText("Pole całkowite =");
                            wpole2.setText("Objętość = ");
                            pole1.setVisible(true);
                            pole2.setVisible(true);
                            pole3.setVisible(true);
 
                            break;
 
                    }
 
                }
            });
 
            // dodanie przycisku
 
            // nasłuchiwanie przycisku
            klik.addActionListener(new ActionListener() {
                
                private int White;
 
                public void actionPerformed(ActionEvent e) {
                    int nr_lista = Jlista.getSelectedIndex();
 
                    if (nr_lista == 0) {
                        JOptionPane.showMessageDialog(null, "Wybierz figure" );
                        
                        return;
                    }
                    //
 
                    // walidacja pól tekstowych
 
                    if (pole1.isVisible()) {
                        if (!validuj.sprCzyPoprawne(pole1.getText())) {
                            // jeśli coś jest nie tak zwróci false
                           JOptionPane.showMessageDialog(null,
    "Wpisałes 0,liczbę ujemną albo literę jako wartość lub nic nie wpisałeś",
    "Błąd",
    JOptionPane.WARNING_MESSAGE);
           
                  
                            return;
                        }
                    }
 
                    if (pole2.isVisible()) {
                        if (!validuj.sprCzyPoprawne(pole2.getText())) {
                            // jeśli coś jest nie tak zwróci false
                        
                              JOptionPane.showMessageDialog(null,
    "Wpisałes 0,liczbę ujemną albo literę jako wartość lub nic nie wpisałeś",
    "Błąd",
    JOptionPane.WARNING_MESSAGE);
                            return;
                        }
                    }
 
                    if (pole3.isVisible()) {
                        if (!validuj.sprCzyPoprawne(pole3.getText())) {
                            // jeśli coś jest nie tak zwróci false
                          
                              JOptionPane.showMessageDialog(null,
    "Wpisałes 0,liczbę ujemną albo literę jako wartość lub nic nie wpisałeś",
    "Błąd",
    JOptionPane.WARNING_MESSAGE);
                                   
                               return;
                        }
                    }
 
                    switch (nr_lista) {
                        case 1:// pierwsza figura
                            double pole_w1 = ((1.414213
                                    * Double.parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText())) / 12);
                            wpole1.setText("Pole całkowite =     " + pole_w1);
                            double pole_w1a = (1.442249 * Double
                                    .parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText()));
                            wpole2.setText("Objętość =               "
                                    + pole_w1a);
                            break;
                        case 2:// druga figura
                            double pole_w2 = (2 * ((Double.parseDouble(pole1
                                    .getText()) * Double.parseDouble(pole2
                                    .getText()))) + (2 * Double
                                    .parseDouble(pole2.getText()) * Double
                                    .parseDouble(pole3.getText())))
                                    + (2 * Double.parseDouble(pole1.getText()) * Double
                                            .parseDouble(pole3.getText()));
                            wpole1.setText("Pole całkowite = " + pole_w2);
                            double pole_w2a = (Double.parseDouble(pole1
                                    .getText())
                                    * Double.parseDouble(pole2.getText()) * Double
                                    .parseDouble(pole3.getText()));
                            wpole2.setText("Objętość =            " + pole_w2a);
                            break;
                        case 3:// druga figura
                            double pole_w3 = (4 * 3.14 * (Double
                                    .parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText())));
                            wpole1.setText("Pole całkowite = " + pole_w3);
                            double pole_w3a = (1.333333 * 3.14 * (Double
                                    .parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText())));
                            wpole2.setText("Objętość =            " + pole_w3a);
                            break;
                        case 4:
 
                            double pole_w4 = (3.14 * Double.parseDouble(pole1
                                    .getText()) * (Double.parseDouble(pole1
                                    .getText()) + Double.parseDouble(pole3
                                    .getText())));
                            wpole1.setText("Pole calkowite = " + pole_w4);
                            double pole_w4a = (0.3333 * 3.14
                                    * Double.parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole3.getText()));
                            wpole2.setText("Objętość =            " + pole_w4a);
 
                            break;
 
                    }
                }
            });
 
            panel.add(Jlista);
            panel.add(tpole1);
            panel.add(tpole2);
            panel.add(tpole3);
            panel.add(tpole4);
            panel.add(pole1);
            panel.add(pole2);
            panel.add(pole3);
            panel.add(wpole1);
            panel.add(wpole2);
            panel.add(klik);
 
            okno.add(panel);
            okno.setVisible(true);
    
 
        }
    }
 
    static class validuj {
        public static boolean sprCzyPoprawne(String text) {
 
            // sprawdz czy nie puste
            if (text.isEmpty()) {
 
                return false;
            }
 
            // sprawdz czy jest to cyfra
            Pattern pat1 = Pattern.compile("[0-9]");  
            Matcher mat = pat1.matcher(text);
            if (!mat.matches()) {
                return false;
            }
  
            // sprawdz czy dodatnie
            if (Double.parseDouble(text) <= 0) {
                return false;
            }
 
            return true;
        }
        
    }
 
}

Po wpisaniu liczby ujemnej lub litery wyrzuca błąd jednakże gdy wpisuję np liczbę zmienno przecinkową np. 4.32 wyrzuca błąd , a np jak wpisze liczbę 33,444,5555 to też wyrzuca.
Wiem że problem powoduje ten fragment kodu :

 static class validuj {
        public static boolean sprCzyPoprawne(String text) {
 
            // sprawdz czy nie puste
            if (text.isEmpty()) {
 
                return false;
            }
 
            // sprawdz czy jest to cyfra
            Pattern pat1 = Pattern.compile("[0-9]");  
            Matcher mat = pat1.matcher(text);
            if (!mat.matches()) {
                return false;
            }
  
            // sprawdz czy dodatnie
            if (Double.parseDouble(text) <= 0) {
                return false;
            }
 
            return true;
        }
        
    }
 
}

Jeżeli zmienię przy pattern pat opcję z false na true to moge wpisywać liczby jakie chcę ale nie wyrzuca mi błędu jak wpisze litere a nie wiem jak to poprawić .

Z góry dzięki za pomoc.

0

Rozumiem, że chcesz wpisywać w JTextField tylko liczby prawda ?

http://4programmers.net/Forum/Szukaj?q=JTextField+liczby

0

Tak zwykłe i zmienno przecinkowe tylko ten kod mi to blokuje mogę wpisac cyfrę ale pojedyncza np jak wpisze liczbę 2 lub 3 cyfrową wyrzuca mi błąd i potrzebuje pomocy żeby to poprawić.

0

Sprawdzaj wprowadzanie liczb w trakcie wpisywania używając KeyListener podczepionego do pola. Dodaj zmienna boolean czyUjemna i czyKropka (albo jakoś podobnie) jeśli pierwszy znak będzie "-" to ... Jeśli będzie wpisana kropka lub przecinek to zmień czyKropka na true i więcej nie pozwalaj na wpisanie kropki. Poniżej masz przykład kodu który po przeróbkach może Ci pomóc.

Java KeyListener

0

Dzięki za odpowiedź ale wiesz może jak to zaimplementować w ten kod co mam albo jak poprawić tą funkcję której teraz używam a stwarza mi problem ??

0

public static boolean sprCzyPoprawne(String text) {
double x=0.0;
try
{
Double.parseDouble(text);
return (x>0.0);
}
catch(Exception e)
{
return false;
}
}

0

ok użyłem tego bo co mi dałeś ale przy wpisaniu liczby sypie błedem co bym nie wpisał w oknie

0

Jakim błędem.

0

Że wpisana liczba jest zerem,literą albo ujemna co bym nie wpisał niestety albo źle to włączyłem do samego programu. Jest to okno błędu wczesniej zdefiniowane przezmnie

0

Przepraszam

public static boolean sprCzyPoprawne(String text) {
            double x=0.0;
            try
            {
               x=Double.parseDouble(text);
               return (x>0.0);
            }
            catch(Exception e)
            {
               return false;
            }
        }
0

bo nie przepraszaj nie masz za co ale pokłony Ci bić działa tak jak powinno :D niby pare linijek ale problem spory z tym miałem jako jedyny zamiast rzucać dałeś mi kod za co wdzięczny Ci jestem. Ja właśnie tak się uczę.Pisanie kodu na sucho jest ciężkie ale łatwiej mi analizuje się gotowy kod i go zmieniam kombinuje

0

Ja zrobiłem coś takiego:

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JTextField;
/**
 *
 * @author Piotr
 */
public class FTextField  extends JTextField implements KeyListener {

    FTextField(String s) {
        super(s);
        //if (dl > 0) this.setColumns(dl);
        addKeyListener(this);
        czyKropka = false;
    }
    boolean czyKropka;
    public double getValue(){
        return Double.parseDouble(getText());
    }
    private boolean isNumber(char c){
        boolean res;
        if (c >= '0' && c <= '9' || c == ',' || c == '.')
             res = true;
        else res = false;
        if (c == '.' || c == ',') 
            if (!czyKropka) czyKropka = true;
            else res = false;
//        if ((( c == ',' ) || ( c == '.' )) && !czyKropka ){
//            czyKropka = true;
//            res =  true;
//        } else res = false;
        return res;
    }
    public void keyPressed(KeyEvent e){
        if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_V){
            String clip = "";
            try {
                clip = (String)Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
            } catch(Exception ex){}

            for(int i = 0; i < clip.length(); i++)
                if(!isNumber(clip.charAt(i))){
                    e.consume();
                    break;
                }
        }
        if (e.getKeyCode() ==  KeyEvent.VK_BACK_SPACE){
            String s = this.getText();
            char c = s.charAt(s.length()-1);
            if (c == '.') czyKropka = false;
        }
    }
    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){
        char s = e.getKeyChar();
        if(!isNumber(e.getKeyChar())){
            e.consume();
        } if (e.getKeyChar() == ',') e.setKeyChar('.');
    }
}

Ta klasa sprawdza w trakcie wprowadzania jakie klawisze są wciskane. Pozwala wprowadzić tylko cyfry od 0 do 9 pozwala wprowadzić też ',' lub '.' . W przypadku wciśnięcia ',' zamienia go na '.', tak żeby później była dobrze interpretowana liczba.

To Twój poprawiony kod:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.*;

public class bryly {

    /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {

     oknoglowne oknopr = new oknoglowne();



    }

    private static class oknoglowne {


        String    lista1[] = { "", "Czworościan", "Prostopadłościan", "Kula",
                                   "Stożek" };
        JComboBox Jlista;
        FTextField pole1, pole2, pole3;
        JLabel     tpole1, tpole2, tpole3, tpole4, tpole5, wpole1, wpole2;

        public oknoglowne()

        {
            JFrame okno = new JFrame("Bryłki");
            okno.setResizable(false);
            okno.setSize(500, 400);




            okno.setLocationByPlatform(true);
            okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            JPanel panel = new JPanel();
            panel.setLayout(null);
            //zmiana koloru okna głównego
            panel.setBackground(Color.white);

            // dodanie JComboBox z listą elementów
            Jlista = new JComboBox(lista1);
            Jlista.setBounds(50, 15, 200, 25);
            //zmiana koloru listy tla combobox
            Jlista.setBackground(Color.green);


            JButton klik = new JButton("Obliczaj");
            klik.setBounds(50, 200, 200, 35);
            klik.setVisible(true);
            //zmiana koloru przycisku obliczaj
            klik.setBackground(Color.orange);

            // dodanie JLabel do opisywania tekstów
            tpole1 = new JLabel("Tu podajemy dane");
            tpole1.setBounds(20, 50, 200, 25);
            tpole2 = new JLabel("Tu podajemy dane ");
            tpole2.setBounds(20, 75, 200, 25);
            tpole3 = new JLabel("Tu podajemy dane ");
            tpole3.setBounds(20, 100, 200, 25);
            tpole4 = new JLabel(
                    "Wykonał : Kamil Barcikowski ");
            tpole4.setBounds(10, 50, 600, 525);

            // dodanie JLabel do opisywania tekstów
            wpole1 = new JLabel("");
            wpole1.setBounds(20, 125, 300, 45);
            wpole2 = new JLabel("");
            wpole2.setBounds(20, 150, 300, 45);

            // dodanie JTextFiled okienka do wprowadzania danych
            pole1 = new FTextField("");
            pole1.setBounds(255, 50, 100, 25);
            //zmiana koloru pola wpisywania danych
            pole1.setBackground(Color.yellow);
            pole2 = new FTextField("");
            pole2.setBounds(255, 75, 100, 25);
            pole2.setBackground(Color.yellow);
            pole3 = new FTextField("");
            pole3.setBounds(255, 100, 100, 25);
            pole3.setBackground(Color.yellow);
            // nasłuchiwanie listy JComboBox
            Jlista.setSelectedIndex(1);
            // Tu trzeba Cos
            Jlista.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    int nr_lista1 = Jlista.getSelectedIndex();

                    switch (nr_lista1) {

                        case 0:// pierwsza figura
                            wpole1.setText("Wybierz figurę!!!");
                            pole1.setText("");
                            pole2.setText("");
                            pole3.setText("");
                            pole3.setVisible(false);
                            pole2.setVisible(false);
                            pole1.setVisible(false);
                            tpole1.setText("");

                            tpole2.setText("");
                            tpole3.setText("");
                            wpole2.setText("");

                            break;

                        case 1:// pierwsza figura
                            pole1.setText("");
                            wpole1.setText("Pole całkowite =");
                            wpole2.setText("Objętość = ");
                            tpole1.setText("Długość boku a =");
                            tpole2.setText("");
                            tpole3.setText("");
                            pole3.setVisible(false);
                            pole2.setVisible(false);
                            pole1.setVisible(true);
                            pole1.czyKropka = false;
                            pole2.czyKropka = false;
                            pole3.czyKropka = false;

                            break;
                        case 2:// druga figura
                            pole1.setText("");
                            pole2.setText("");
                            pole3.setText("");
                            wpole1.setText("Pole =");
                            tpole1.setText("Długość boku a =");
                            tpole2.setText("Długość boku b =");
                            tpole3.setText("Długość boku c =");
                            wpole1.setText("Pole całkowite =");
                            wpole2.setText("Objętość = ");
                            pole1.setVisible(true);
                            pole2.setVisible(true);
                            pole3.setVisible(true);
                            pole1.czyKropka = false;
                            pole2.czyKropka = false;
                            pole3.czyKropka = false;
                            break;

                        case 3:// druga figura
                            pole1.setText("");

                            wpole1.setText("Pole całkowite =");
                            tpole1.setText("Promień r=");
                            pole3.setVisible(false);
                            pole2.setVisible(false);
                            wpole2.setText("Objętość = ");
                            tpole2.setText("");
                            tpole3.setText("");
                            pole1.setVisible(true);
                            pole1.czyKropka = false;
                            pole2.czyKropka = false;
                            pole3.czyKropka = false;
                            break;

                        case 4:
                            pole1.setText("");
                            pole2.setText("");
                            pole3.setText("");
                            wpole1.setText("Pole =");
                            tpole1.setText("Długość bopromienia r =");
                            tpole2.setText("Długość tworzącej      l =");
                            tpole3.setText("Wysokość                     h = ");
                            wpole1.setText("Pole całkowite =");
                            wpole2.setText("Objętość = ");
                            pole1.setVisible(true);
                            pole2.setVisible(true);
                            pole3.setVisible(true);
                            pole1.czyKropka = false;
                            pole2.czyKropka = false;
                            pole3.czyKropka = false;
                            break;

                    }

                }
            });

            // dodanie przycisku

            // nasłuchiwanie przycisku
            klik.addActionListener(new ActionListener() {

                private int White;

                public void actionPerformed(ActionEvent e) {
                    int nr_lista = Jlista.getSelectedIndex();

                    if (nr_lista == 0) {
                        JOptionPane.showMessageDialog(null, "Wybierz figure" );
                        return;
                    }

                    switch (nr_lista) {
                        case 1:// pierwsza figura
                            double pole_w1 = ((1.414213
                                    * Double.parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText())) / 12);
                            wpole1.setText("Pole całkowite =     " + pole_w1);
                            double pole_w1a = (1.442249 * Double
                                    .parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText()));
                            wpole2.setText("Objętość =               "
                                    + pole_w1a);
                            break;
                        case 2:// druga figura
                            double pole_w2 = (2 * ((Double.parseDouble(pole1
                                    .getText()) * Double.parseDouble(pole2
                                    .getText()))) + (2 * Double
                                    .parseDouble(pole2.getText()) * Double
                                    .parseDouble(pole3.getText())))
                                    + (2 * Double.parseDouble(pole1.getText()) * Double
                                            .parseDouble(pole3.getText()));
                            wpole1.setText("Pole całkowite = " + pole_w2);
                            double pole_w2a = (Double.parseDouble(pole1
                                    .getText())
                                    * Double.parseDouble(pole2.getText()) * Double
                                    .parseDouble(pole3.getText()));
                            wpole2.setText("Objętość =            " + pole_w2a);
                            break;
                        case 3:// druga figura
                            double pole_w3 = (4 * 3.14 * (Double
                                    .parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText())));
                            wpole1.setText("Pole całkowite = " + pole_w3);
                            double pole_w3a = (1.333333 * 3.14 * (Double
                                    .parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole1.getText())));
                            wpole2.setText("Objętość =            " + pole_w3a);
                            break;
                        case 4:

                            double pole_w4 = (3.14 * Double.parseDouble(pole1
                                    .getText()) * (Double.parseDouble(pole1
                                    .getText()) + Double.parseDouble(pole3
                                    .getText())));
                            wpole1.setText("Pole calkowite = " + pole_w4);
                            double pole_w4a = (0.3333 * 3.14
                                    * Double.parseDouble(pole1.getText())
                                    * Double.parseDouble(pole1.getText()) * Double
                                    .parseDouble(pole3.getText()));
                            wpole2.setText("Objętość =            " + pole_w4a);
                            break;
                    }
                }
            });
            panel.add(Jlista);
            panel.add(tpole1);
            panel.add(tpole2);
            panel.add(tpole3);
            panel.add(tpole4);
            panel.add(pole1);
            panel.add(pole2);
            panel.add(pole3);
            panel.add(wpole1);
            panel.add(wpole2);
            panel.add(klik);
            okno.add(panel);
            okno.setVisible(true);
        }
    }
}

Nie zdarzyłem dorobić do liczby ujemne. Ale to też ładnie się da zrobić.
Pozdrawiam

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