import java.awt.*;
import java.lang.reflect.*;

public class GTKEngineTest {
    public static void main(String[] args) throws Exception {
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Class<?> clz = Class.forName("sun.awt.UNIXToolkit");
        if (clz.isAssignableFrom(toolkit.getClass())) {
            Method loadGTK = clz.getDeclaredMethod("loadGTK");
            boolean isLoaded = (boolean)loadGTK.invoke(toolkit);
            if (isLoaded) {
                clz = Class.forName("com.sun.java.swing.plaf.gtk.GTKStyle");
                Method nativeGetClassValue = clz.getDeclaredMethod("nativeGetClassValue", int.class, String.class);
                nativeGetClassValue.setAccessible(true);
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < 256; i++) sb.append("\u3042");
                // "52" means BUTTON
                Object obj = nativeGetClassValue.invoke(null, 52, sb.toString());
                System.out.println("obj="+obj);
            }
        }
    }
}
