I'd say your design is flawed if you can't simply call "font.draw()" in your game. For example; instead of relying on a list of Image objects, you should write your own Entity or Renderable interface with a draw() method. Subclasses (e.g. ImageEntity, TextEntity) would simply override the draw method to implement the given functionality.
Also keep in mind that it's generally wise to "batch" images that share the same texture (i.e. sprite sheets, bitmap fonts) to improve performance. So, instead of making each of your sprites in the same sheet call Image.draw(), you should look into using startUse/endUse/drawEmbedded.
For bitmap fonts, look into TWL's Font Tool
(save as text) or Hiero. Then you simply use AngelCodeFont to load and render the text.