Mam taki problem: Mam tabele jTable w swoim JFrame gdzie do tabeli sa dodawane towary i w tej tabeli mam kolumne np ilosc i kolumnę np wartoscNetto i teraz chce aby gdy wpisze recznie ilosc i klikne jeden raz obojetnie gdzie badz wcisne Tab, oczywiscie w obrebie jFrame to zmienie mi sie wartoscNetto. Słyszałem ze to moze byc cos z funkcja FocusLost. Ponizej wycinek kodu który działa ale trzeba klikać niestety dwa razy a jak dwa razy to i Tab nie działa. Mysle ze jasno wytłumaczyłem.

Kopiuj
private void jTableTowarFocusLost(java.awt.event.FocusEvent evt) {                                      

        // wyliczenie wartości brutto
        double wart = Double.parseDouble(jTableTowar.getValueAt(count-1, 3).toString())* Double.parseDouble(jTableTowar.getValueAt(count-1, 5).toString());
        jTableTowar.setValueAt(wart, count-1, 6);
        //pobranie wartości ilości wierszy
        int iloscWierszy = jTableTowar.getRowCount();

        double wartoscFaktury = 0;
        if(iloscWierszy>0){
            for (int i = 0; i<iloscWierszy; i++){

                //obliczanie sumy faktury
                wartoscFaktury = wartoscFaktury + Double.parseDouble(jTableTowar.getValueAt(i, 6).toString());

                //ilość zakupionego towaru na fakturze
                int ilosc = Integer.parseInt(jTableTowar.getValueAt(i, 3).toString());
                array = new ArrayList<Object>();
                
                try {
                    usrList = (ListObject) XmlManagement.read ("Towar.xml");
                    array = (ArrayList<Object>)usrList.getList();
                    for (int j = 0; j<array.size(); j++){
                        Towar t = (Towar)array.get(j);

                        if(Integer.parseInt(jTableTowar.getValueAt(i, 0).toString())==t.getNrTowaru()){
                            if(ilosc>t.getIloscTowaru()){
                                JOptionPane.showMessageDialog(null, "Stan magazynowy towaru '"+t.getNazwaTowaru()+"' to: "+t.getIloscTowaru());
                                jTableTowar.setValueAt(t.getIloscTowaru(),i, 3);
                            }
                            if(t.getIloscTowaru()-ilosc>0){
                                t.setIloscTowaru(t.getIloscTowaru()-ilosc);
                            }
                        }
                    }
                    
                } catch (Exception ex) {
                    JOptionPane.showMessageDialog(null, ex);
                }
            }
        jTextFieldWartoscFaktury.setText(""+round.format(wartoscFaktury));
        }
    }