Converting Texture data to java.awt.Image


I've been working on a level design tool, and I am trying to display the current texture of a spatial in a javax.swing.JLabel.  Is there a way to convert the com.jme.Image returned into a java.awt.Image, so that I can create an java.awt.ImageIcon out of this and pass it to the JLabel.setIcon method?  This would be simple if the com.jme.Image data was in a simple uncompressed bitmap-like form, but the textures I have loaded come from jpg or png files and get stored as the com.jme.Image.RGB888_DXT1 format which I have no clue as to decode.  So the following code I developed can only convert from 24-bit RGB format or 32-bit RGBA format:

   private void updateUIFromTexture()
      Texture tex = textureState.getTexture();
      if(tex != null)
          // rescale the image to be IMG_DIM
         com.jme.image.Image jmeImg = tex.getImage();
         BufferedImage awtImg;
         int awtType;
         int jmeType = jmeImg.getType();
         if(jmeType == com.jme.image.Image.RGB888)
            awtType = BufferedImage.TYPE_INT_RGB;
         else if(jmeType == com.jme.image.Image.RGBA8888)
            awtType = BufferedImage.TYPE_INT_ARGB;
            throw new AssertionError("jmeType=" + jmeType + " not supported");
         int w = jmeImg.getWidth();
         int h = jmeImg.getHeight();
         awtImg = new BufferedImage(w,h,awtType);
         ByteBuffer data = jmeImg.getData();
         ColorRGBA color = new ColorRGBA();
         boolean alpha  = jmeType == com.jme.image.Image.RGBA8888;
                        boolean reverseOrder = data.order() == ByteOrder.LITTLE_ENDIAN;
         for(int i = 0; i < w; ++i)
            for(int j = 0; j < h; ++j)
               color.r = (data.get() + 128) / 255.0f;
               color.g = (data.get() + 128) / 255.0f;
               color.b = (data.get() + 128) / 255.0f;
                  color.a = (data.get() + 128) / 255.0f;
               // convert to single 32-bit int
               int value;
                                        if(alpha) value = ColorUtil.asIntRGBA(color);
                                        else  value = ColorUtil.asIntRGB(color);
                                        if(reverseOrder) value = Integer.reverseBytes(value);
               awtImg.setRGB(i, j, value);
         lblTexture.setIcon(new ImageIcon(awtImg.getScaledInstance(
                IMG_DIM.width, IMG_DIM.height, Image.SCALE_SMOOTH)));
         lblTexture.setText("<NO IMAGE>");

If I could convert the DX_1 format to regular 24-bit RGB I should be good to go, but I am not sure how to do this.  Any help would be much appreciated.