Obsługa wyjątków dzielenie przez zero i wpisywania liter

0

Witam znowu ja niestety :/
Otóż potrzebuje pomocy z obsługą wyjątków chodzi mi o to że np. jak ktoś w pole JTextField wpisze powiedzmy zero albo jakąś literę pokaże mu w oknie programu albo ramkę z tekstem że wpisał zero i nie można wykonać obliczeń próbowałem z try catch ale coś mi nie wychodziło to
pod spodem kod programu który otrzymałem od tomasz79 przerobiony już bo wcześniej miałem problem z combobox

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bryly;

 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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, 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);
 
//dodanie JComboBox z listą elementów
            Jlista = new JComboBox (lista1);
            Jlista.setBounds(50, 15, 200, 25);
 
              JButton klik = new JButton ("Oblicz");
            klik.setBounds(50, 200, 200, 35);
             klik.setVisible(true);
                   
 
//dodanie JLabel do opisywania tekstów
            tpole1 = new JLabel("Tu podajemy dane różne od zera");
            tpole1.setBounds(20, 50, 200, 25);
            tpole2 = new JLabel("Tu podajemy dane różne od zera ");
            tpole2.setBounds(20, 75, 200, 25);
            tpole3 = new JLabel("Tu podajemy dane różne od zera");
            tpole3.setBounds(20, 100, 200, 25);
            tpole4 = new JLabel("Program do obliczania objętości i pola całkowitego brył geometrycznych");
            tpole4.setBounds(10, 50, 600, 525);
//dodanie JLabel do opisywania tekstów
            wpole1 = new JLabel("");
            wpole1.setBounds(20, 125, 300, 45);
            wpole2 = new JLabel("Przycisk do obliczen ↓");
            wpole2.setBounds(20, 150, 300, 45);
 
//dodanie JTextFiled okienka do wprowadzania danych
            pole1 = new JTextField ("0.00");
            pole1.setBounds(255, 50, 100, 25);
            pole2 = new JTextField ("0.00");
            pole2.setBounds(255, 75, 100, 25);
            pole3 = new JTextField ("0.00");
            pole3.setBounds(255, 100, 100, 25);
// 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ę!!!");
                             pole3.setVisible(false);
                             pole2.setVisible(false);
                             pole1.setVisible(false);
                             tpole1.setText("");
                              tpole2.setText("");
                              tpole3.setText("");
                               wpole2.setText(""); 
                            
                              
                             
                            break;
                            
                            
                        case 1://pierwsza figura
                            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
                            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ść = ");
                             pole2.setVisible(true);
                             pole3.setVisible(true);
                            break;
                            
                        case 3://druga figura
                            wpole1.setText("Pole całkowite =");
                            tpole1.setText("Promień r=");
                             pole3.setVisible(false);
                             pole2.setVisible(false);
                             wpole2.setText("Objętość = ");
                             tpole2.setText("");
                             tpole3.setText("");
                       break;
                            
                        case 4:
                               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ść = ");
                             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();
//
                    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);
 
        }
 
    }
 
}
    

 
0

Jakoś tak:

try
{
   double x=Double.parseDouble(pole1.getText());
}
catch(Exception)
{
   JOptionPane.showMessageDialog(...);
   return;
}
if(x<0)
{
   JOptionPane.showMessageDialog(...);
   return;
}

Wyjątki nie służą do sterowania programem. Czy wprowadzona liczba jest dodatnia sprawdzaj przy pomocy if.

0

dzięki za pomoc a jak np wyczyścić zawartość pola JTextField np po zmianie wyboru w combobox ??

edit już mam :D proste jak nic a jednak cięzka sprawa była z tym

   case 1://pierwsza figura
                          pole1.setText("");   //wystarczy to dodać i po wybraniu opcji nr 1 okno jest czyste
                            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);

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