private void getBatteryInfo() {
        new Thread() {
            @Override
            public void run() {
                setName("Battery Info Thread");
                setPriority(Thread.MIN_PRIORITY);
                while (getDeviceInfo) {
//                    if (debug)
//                        logger.log(Level.DEBUG, "Gathering device battery information...");
                    Battery battery = selectedDevice.getBattery();
                    
                    boolean isACPowered = false;
                    boolean isUSBPowered = false;
                    boolean isWirelessPowered = false;
                    boolean isPresent = false;
                    
                    BatteryStatus batStatus = null;
                    BatteryHealth batHealth = null;
                    
                    
                    int batLevel = 0;
                    int batScale = 0;
                    int batVoltage = 0;
                    int batCurrent = 0;
                    
                    double batTemp = 0;
                    
                    String batTech = null;
                    String poweredBy = "<html>" + parser.parse("isPoweredByLabel") + " ";
//                    if (debug)
//                        logger.log(Level.DEBUG, "Fetching info...");
                    //<editor-fold defaultstate="collapsed" desc="Fetch all information...">
                    try {
                        isACPowered = battery.isACPowered();
                        isUSBPowered = battery.isUSBPowered();
                        isWirelessPowered = battery.isWirelessPowered();
                        isPresent = battery.isPresent();
                        
                        batStatus = battery.getStatus();
                        batHealth = battery.getHealth();
                        
                        batLevel = battery.getLevel();
                        batScale = battery.getScale();
                        batVoltage = battery.getVoltage();
                        batCurrent = battery.getCurrent();
                        
                        batTemp = battery.getTemp();
                        
                        batTech = battery.getTechnology();
                        
                        
                    } catch (IOException ex) {
                        logger.log(Level.ERROR, "An error occurred while attempting to gather information from the device " + selectedDevice.getSerial() + "\n"
                                + "The error stackt trace will be printed to the console...");
                        ex.printStackTrace(System.err);
                        JOptionPane.showMessageDialog(null, parser.parse("batStatusInterrupted"), parser.parse("batStatusInterruptedTitle"), JOptionPane.INFORMATION_MESSAGE);
                        interrupt();
                    }
                    //</editor-fold>
                    
                    // Set values:
                    // TO-DO: Add icon logic...
                    batteryLevel_batteryLabel.setText(parser.parse("batteryLevelLabel") + " " + batLevel + "%");
                    batteryHealth_batteryLabel.setText(parser.parse("batteryHealthLabel") + " " + parser.parse(String.valueOf(batHealth)));
                    
                    isInserted_batteryLabel.setText("<html>" + parser.parse("isInsertedLabel") + parser.parse(String.valueOf(isPresent)) + "</html>");
                    if (isACPowered) poweredBy += parser.parse("poweredBy:AC") + "<br>";
                    if (isUSBPowered) poweredBy += parser.parse("poweredBy:USB") + "<br>";
                    if (isWirelessPowered) poweredBy += parser.parse("poweredBy:wireless") + "</html>";
                    isPoweredBy_batteryLabel.setText(poweredBy);
                    batteryStatus_batteryLabel.setText(parser.parse("batteryStatusLabel") + " " + parser.parse(String.valueOf(batStatus)));
                    batteryScale_batteryLabel.setText(parser.parse("batteryScaleLabel") + " " + batScale);
                    batteryVoltage_batteryLabel.setText(parser.parse("batteryVoltageLabel") + " " + batVoltage + "mV");
                    batteryCurrent_batteryLabel.setText(parser.parse("batteryCurrentLabel") + " " + batCurrent + "mA");
                    double tempF = (batTemp * 1.8 + 32); // Fahrenheit conversion for the Americans. God, I'm a nice developer, ain't I?
                    batteryTemp_batteryLabel.setText(parser.parse("batteryTempLabel") + " " + batTemp + "°C (" + tempF + "°F)");
                    batteryTech_batteryLabel.setText(parser.parse("batteryTechLabel") + " " + batTech);
                    
                }
            }
        }.start();
    }