Exception in thread “main” java.lang. NumberFormatException: For неудар в лунку string: “”

я делаю программу это конвертер единиц используя 3 combox, изогнутый главный, что он считает меню: Длина, температура, частота и давление и 2 другие combox берутся за то, чтобы конвертировать единицы используя 2 ящика текстов, я правда не с q событие могу работать для 2 combox, заранее благодарен много человеку или люди q я сотрудничал в этом это программа: ***

import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;

    public class Conversor extends JFrame {

        public JPanel panel;
        private JLabel enunciado, enlazado;
        private JTextField conv1, conv2;
        private JComboBox Lista1, Lista2, Lista3;
        private JButton clear;
        //constructor

        public Conversor() {
            super("Conversor Unidades");
            setBounds(100, 200, 290, 300);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            Panel();
            Enunciado();
            CajaTexto();
            boton();
            objetosCombox();
            lista3();
        }

        private void Panel() {
            panel = new JPanel();
            this.getContentPane().add(panel);
            panel.setLayout(null);
        }

        private void Enunciado() {
            enunciado = new JLabel("Este es un software para convertir unidades.");
            panel.add(enunciado);
            enunciado.setBounds(10, 2, 300, 35);
            enunciado.setFont(new Font("arial", Font.BOLD, 12));
            enlazado = new JLabel("=");
            panel.add(enlazado);
            enlazado.setBounds(125, 80, 100, 25);
            enlazado.setFont(new Font("arial", Font.BOLD, 20));
        }

        private void CajaTexto() {
            //caja de texto 1
            conv1 = new JTextField();
            panel.add(conv1);
            conv1.setBounds(10, 80, 110, 25);
            //caja de texto 2
            conv2 = new JTextField();
            panel.add(conv2);
            conv2.setBounds(140, 80, 110, 25);
        }

        //funciones de los combox
        private void objetosCombox() {
            Lista3 = new JComboBox();
            Lista1 = new JComboBox();
            Lista2 = new JComboBox();
            Lista3.setBounds(10, 40, 240, 30);
            Lista1.setBounds(10, 120, 110, 25);
            Lista2.setBounds(140, 120, 110, 25);
            panel.add(Lista3);
            panel.add(Lista1);
            panel.add(Lista2);
            Lista3.addItemListener(new menu3());
            Lista1.addItemListener(new evento1());
            Lista2.addItemListener(new evento1());
        }

        private void lista3() {
            Lista3.addItem("Longitud");
            Lista3.addItem("Temperatura");
            Lista3.addItem("Frecuencia");
            Lista3.addItem("Presion");
        }

        private class menu3 implements ItemListener {

            @Override
            public void itemStateChanged(ItemEvent e) {
                rellenaCombo1((String) Lista3.getSelectedItem());
            }
        }

        private void rellenaCombo1(String SeleccionCombo1) {
            Lista1.removeAllItems();
            Lista2.removeAllItems();
            if (SeleccionCombo1.equals("Longitud")) {
                Lista1.addItem("Km");
                Lista1.addItem("m");
                Lista1.addItem("Cm");
                Lista1.addItem("Pulgada");
                Lista1.addItem("Millas");
                //menu 2
                Lista2.addItem("Km");
                Lista2.addItem("m");
                Lista2.addItem("Cm");
                Lista2.addItem("Pulgada");
                Lista2.addItem("Millas");
            }

            if (SeleccionCombo1.equals("Temperatura")) {
                Lista1.addItem("Grados Celsius");
                Lista1.addItem("Grados Fahrenheit");
                Lista1.addItem("Grados Kelvin");
                // menu 2
                Lista2.addItem("Grados Celsius");
                Lista2.addItem("Grados Fahrenheit");
                Lista2.addItem("Grados Kelvin");

            }
            if (SeleccionCombo1.equals("Frecuencia")) {
                Lista1.addItem("Herz");
                Lista1.addItem("KiloHerz");
                Lista1.addItem("MegaHerz");
                Lista1.addItem("GigaHerz");
                //menu 2
                Lista2.addItem("Herz");
                Lista2.addItem("KiloHerz");
                Lista2.addItem("MegaHerz");
                Lista2.addItem("GigaHerz");
            }
            if (SeleccionCombo1.equals("Presion")) {
                Lista1.addItem("Atmosfera");
                Lista1.addItem("Bar");
                Lista1.addItem("Psi");
                Lista1.addItem("Pascal");
                Lista1.addItem("Tor");
                // menu 2
                Lista2.addItem("Atmosfera");
                Lista2.addItem("Bar");
                Lista2.addItem("Psi");
                Lista2.addItem("Pascal");
                Lista2.addItem("Tor");
            }
        }

        private class evento1 implements ItemListener {

            @Override
            public void itemStateChanged(ItemEvent e) {
                if (e.getStateChange() == ItemEvent.SELECTED) {
                   String longitud = (String) Lista3.getSelectedItem().toString();
                 if (longitud.equals("Longitud")) {
                    String magnitud = (String) Lista1.getSelectedItem().toString();
                    if (magnitud.equals("Km")) {
                        int num1 = Integer.parseInt(conv1.getText());
                        String magnitud1 = (String)Lista2.getSelectedItem().toString();
                        if (magnitud1.equals("Km")) {
                            JOptionPane.showMessageDialog(null, "Error no se puede convertir de Km a Km");
                        }
                    }
                }
            }
        }
        }
            private void boton() {
                clear = new JButton("Clear");
                panel.add(clear);
                clear.setBounds(85, 160, 80, 25);
                clear.addActionListener(new clear7());
            }

            class clear7 implements ActionListener {

                @Override
                public void actionPerformed(ActionEvent e) {
                    if (e.getSource() == clear) {
                        conv1.setText("");
                        conv2.setText("");
                    }
                }
            }
        }

Это ошибка:

    Exception in thread "main" java.lang.NumberFormatException: For input string: ""
      at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
      at java.lang.Integer.parseInt(Integer.java:592)
      at java.lang.Integer.parseInt(Integer.java:615)
      at Conversor7.Conversor$evento1.itemStateChanged(Conversor.java:158)
      at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1223)
      at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1280)
      at javax.swing.JComboBox.contentsChanged(JComboBox.java:1330)
      at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118)
      at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:93)
      at javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:131)
      at javax.swing.JComboBox.addItem(JComboBox.java:716)
      at Conversor7.Conversor.rellenaCombo1(Conversor.java:100)
      at Conversor7.Conversor.access$300(Conversor.java:16)
      at Conversor7.Conversor$menu3.itemStateChanged(Conversor.java:92)
      at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1223)
      at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1280)
      at javax.swing.JComboBox.contentsChanged(JComboBox.java:1330)
      at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118)
      at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:93)
      at javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:131)
      at javax.swing.JComboBox.addItem(JComboBox.java:716)
      at Conversor7.Conversor.lista3(Conversor.java:82)
      at Conversor7.Conversor.<init>(Conversor.java:34)
      at Conversor7.PrincipalConversor.main(PrincipalConversor.java:4)
    C:\Users\JORGE\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53:

Java returned: 1 BUILD FAILED (общее количество украло: 1 second)

1
задан 08.11.2019, 00:16
2 ответа

Ошибка

Нумберформатекссептион.форинпутстринг (NumberFormatException.java:65) at java.lang. Integer.parseInt (Integer.java:592) at java.lang. Integer.parseInt (Integer.java:615)

проистекает того, что ты пробуешь конвертировать стоимость не numГ©rico в numГ©rico

Добавляет mГ©todo, что ты servirГЎ, чтобы санкционировать случаи, в которых стоимость, которая находит в JTextField, названный conv1, не типа numГ©rico:

public static int checkNumerico(String numero){
    int resultado = 0; //Valor predeterminado 0
    try{
        if(numero != null){
            resultado = Integer.parseInt(numero);
        }
    }catch(NumberFormatException nfe){
        System.out.println("Error NumberFormatException value: " + numero);
    }
    return resultado;
}

из этой формы usarГ-схвати mГ©todo:

//int num1 = Integer.parseInt(conv1.getText());
int num1 = checkNumerico(conv1.getText());
0
ответ дан 01.12.2019, 12:18

Проверь хорошо то, что говорит твою ошибку, она excepciГіn NumberFormatException значит, что у цепи есть формат numГ©rico не действительно, после тебе показывает ввод, что recibiГі funciГіn Integer.parseInt(), которой было "", а именно цепь vacГ, - за чем не могут parsear цепь vacГ - в в целое число, я рекомендую тебе, проверь стоимость, которую ты даешь conv1, так как он это не получает mГ©todo, предотвращать эту ошибку ты можешь проверять сначала, если переменная не была пустой:

private class evento1 implements ItemListener {

            @Override
            public void itemStateChanged(ItemEvent e) {
                if (e.getStateChange() == ItemEvent.SELECTED) {
                   String longitud = (String) Lista3.getSelectedItem().toString();
                 if (longitud.equals("Longitud")) {
                    String magnitud = (String) Lista1.getSelectedItem().toString();
                    if (magnitud.equals("Km")) {
                        //Validacion
                        if(conv1.getText().isEmpty()) {
                         JOptionPane.showMessageDialog(null, "Error elemento vacio");
                        } else {
                        int num1 = Integer.parseInt(conv1.getText());
                        String magnitud1 = (String)Lista2.getSelectedItem().toString();
                        }
                        if (magnitud1.equals("Km")) {
                            JOptionPane.showMessageDialog(null, "Error no se puede convertir de Km a Km");
                        }
                    }
                }
            }
        }
        }
0
ответ дан 01.12.2019, 12:18
  • 1
    Привет большое спасибо из-за внимания, я комментирую тебе, что q у меня выходит ошибка, раньше был с For неудар в лунку String уже сейчас у меня выходит такая ошибка: Exception in thread " main" java.lang. NullPointerException ошибка указывает на меня в этом коде: String magnitud1 = (Стринг) Листа2.хетселектедитем () .toString (); – Jorge Vinasco 08.11.2019, 18:53
  • 2
    Самое вероятное состоит в том, чтобы твой список Lista2 инициализировался в null, и назвав mé каждый getSelectedItem () бросает эту excepció n, проверь, инициализируется ли твой список правильно – Eduardo Marin 08.11.2019, 22:47
  • 3
    diculpame, что спросил это у тебя, я не очень опытный с программированием в Java я изучаю Java из-за моего счета, как инициализируется Список? – Jorge Vinasco 09.11.2019, 21:02
  • 4
    Прощение из-за задержки, ты инициализируешь твои переменные Списка в методах rellenarCombo и в objetosCombo, такой каков - выражение Lista3 = new JComboBox (), например, проверяет порядок выполнения твоих методов для того, чтобы, когда он прибудет в itemStateChange, уже была какая-то стоимость у твоей переменной – Eduardo Marin 20.11.2019, 03:14

Теги

Похожие вопросы