Your class comments indicate a different purpose than your class code,
but assuming a connection in your mind, code something like the
following might be helpful to you:
public class Fonts {
public static Font [] getFonts() {
return GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
}
public static String [] getFontNames() {
Font [] fonts = getFonts();
String [] fontNames = new String [fonts.length];
for (int i = 0; i < fonts.length; i++) {
fontNames[i] = fonts[i].getFontName();
}
return fontNames;
}
public static String [] getFontFamilies() {
Font [] fonts = getFonts();
String [] fontFamilies = new String [fonts.length];
for (int i = 0; i < fonts.length; i++) {
fontFamilies[i] = fonts[i].getFamily();
}
return fontFamilies;
}
public static String [] getNames() {
Font [] fonts = getFonts();
String [] names = new String [fonts.length];
for (int i = 0; i < fonts.length; i++) {
names[i] = fonts[i].getName();
}
return names;
}
public static void main(String [] params) {
String [] names = Fonts.getNames();
for(int i = 0; i < names.length; i++) {
com.crackwillow.log.StdOut.log("fonts",names[i]);
}
}
} ///;-) Michael McGrady
On 5/6/05, Daniel Watrous <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I have a web application that uses java.awt.Font objects to render
> images. The application will run in tomcat and that is where I have
> done development. When I first tried to run the application on a
> Linux box with Tomcat 5.0.25 I got the following error:
>
> java.lang.NoClassDefFoundError
> at com.words2walls.customquote.CustomQuote.getQuoteFontName(Unknown
> Source)
> at com.words2walls.webapp.filters.SessionQuoteFilter.doFilter(Unknown
> Source)
>
> Here is the code call that throws the error:
> public String getQuoteFontName() {
> return QuoteFontType.getInstance(this.quoteFontCode).toString();
> }
>
> And the class that is being called:
> /*
> * QuoteFontType.java
> *
> * Created on April 15, 2005, 9:41 AM
> */
>
> package com.words2walls.customquote;
>
> import java.awt.Font;
> import java.awt.FontFormatException;
> import java.util.*;
> import java.io.*;
>
> import com.words2walls.customquote.exceptions.FontNotFoundException;
>
> /**
> * Type safe enumeration of available fonts
> *
> * @author Daniel Watrous
> */
> public class QuoteFontType {
>
> private static final String pathToWebapp = "C:\\Program
> Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\words2walls";
> private static final String pathToPackage =
> "\\WEB-INF\\classes\\com\\words2walls\\fonts\\";
> private String fontName;
> private int fontCode;
> private Font font;
> private static org.apache.log4j.Category cat =
>
> org.apache.log4j.Category.getInstance(QuoteFontType.class.getName());
>
> public static final QuoteFontType ADORABLE = new
> QuoteFontType(1,"Adorable","adorable.ttf");
> private static final Map INSTANCES = new HashMap();
>
> static {
> cat.debug("Enter Static block to place fonts in INSTANCES Map");
> INSTANCES.put (ADORABLE.toInteger(), ADORABLE);
> cat.debug("Exit Static block with INSTANCES.size() = " +
> INSTANCES.size());
> }
>
> /** Creates a new instance of QuoteFontType */
> private QuoteFontType(int code, String fontName, String filename) {
> // create a font from the font file
> try {
> File fontFile = new File (pathToWebapp+pathToPackage+filename);
> FileInputStream fis = new FileInputStream(fontFile);
> font = Font.createFont(Font.TRUETYPE_FONT, fis);
> } catch (Exception e) {
> throw new FontNotFoundException(e);
> }
> // set member variables
> this.font = font;
> this.fontCode = code;
> this.fontName = fontName;
> }
>
> public String toString() {
> return fontName;
> }
>
> public Integer toInteger() {
> return new Integer(fontCode);
> }
>
> public static QuoteFontType getInstance(int code) {
> return (QuoteFontType) INSTANCES.get(new Integer(code));
> }
>
> public Font getFont() {
> return font;
> }
>
> }
>
> After some googling I found that if I set an environment variable
> "JAVA_OPTS=-Djava.awt.headless=true" that this error would go away.
> I'm not sure why this is the case, but it worked.
>
> I am now trying to test the application on a windows machine with
> Tomcat 5.0.30 and I get the same error. I have set a Windows XP
> environment variable the same as mentioned above. I have also added
> the option to the Java tab of the Tomcat monitor under Java Options:.
>
> What is the cause of this error? Is there some way that I can make it
> work on both Windows and Linux? Thanks in advance.
>
> Daniel
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]