package bmsi.fsp; import java.awt.*; import java.awt.event.*; import bmsi.awt.SuperListener; /** Test basic window operations for FS AWT implementation. @author Stuart D. Gathman Copyright (C) 2000 Business Management Systems, Inc. */ public class testfs extends Frame implements KeyListener { private String msg = "Hello World!"; public void center() { Dimension s = getToolkit().getScreenSize(); Dimension d = getSize(); setLocation((s.width - d.width)/2,(s.height - d.height)/2); } private static int cnt; public testfs() { super("Test FSFrame #" + ++cnt); add(new Label("North",Label.CENTER),"North"); add(new Label("South",Label.CENTER),"South"); add(new Label("East"),"East"); add(new Label("West"),"West"); pack(); center(); SuperListener s = new SuperListener(this); s.listenTo(this); } public void setSize(Dimension s) { super.setSize(s); validate(); } public void paint(Graphics g) { Rectangle r = getBounds(); FontMetrics fm = g.getFontMetrics(); int w = fm.stringWidth(msg); int h = fm.getHeight(); g.drawString(msg,(r.width - w)/2,(r.height + h)/2); } public void keyPressed(KeyEvent e) { } public void keyTyped(KeyEvent e) { Point p = getLocation(); Dimension s = getSize(); switch (e.getKeyChar()) { case 'j': p.y += 5; setLocation(p); break; case 'k': p.y -= 5; setLocation(p); break; case 'h': p.x -= 5; setLocation(p); break; case 'l': p.x += 5; setLocation(p); break; case 'J': s.height += 5; setSize(s); break; case 'K': s.height -= 5; setSize(s); break; case 'H': s.width -= 5; setSize(s); break; case 'L': s.width += 5; setSize(s); break; case 'n': main(null); break; case 'q': System.exit(0); case 'c': dispose(); break; case 'b': toBack(); break; } } public void keyReleased(KeyEvent e) { } public static void main(String[] argv) { testfs f = new testfs(); f.show(); f.requestFocus(); } }