Personalização do Frame - AWT

Olá a todos.

Bem, indo direto ao assunto: Existe alguma maneira, em AWT, para java 1.3~1.4, de desabilitar o X, ou toda a barra superior?

Antes que respondessem, agradeço se considerarem o seguinte:

Pesquisei sobre este assunto, no entanto não encontrei nada específico para o problema que estou tendo aqui, visto que a maioria dos dos desenvolvedores utilizam Swing, e, infelizmente a plataforma na qual estou trabalhando (Máquina Virtual J9 da IBM p/ Pocket Pc) dispõe apenas dos recursos da AWT.

O recurso setUndecorated (que faz desaparecer a barra com o X, o maximizar, e outros, não está disponível na plataforma em que eu trabalho.

Pra ser mais específico:

      O Software em questão trabalha com uma única conexão com o banco de dados. Como o procedimento de conexão ao banco é demorado (estou trabalhando com dados em memória). Por conta disso, trabalho utilizando uma mesma conexão com o banco, que TEM que ser fechada quando a aplicação termina.

No entanto, por algum estranho motivo, o evento windowClosing não efetua nenhum procedimento quando o software é executado no pocket pc. No entanto, o mesmo código quando em testes no eclipse, com Java mais atual, em um PC desktop, roda perfeitamente, e a conexão com o banco de dados é fechada.
Visto que não consegui nenhuma maneira de fazer os eventos de janela rodarem no pocket pc, por algum motivo que desconheço, programei um botão FIM, o qual fecha o aplicativo e a conexão com o banco. No entanto preciso forçar o usuário a não utilizar o X, visto que isso deixaria a conexão com o banco em aberto, e sem o SHUTDOWN, o banco de dado que utilizo (HSQLDB) mantém um arquivo de lock, e não permite nova conexão até que a anterior seja fechada.

Agradeço aos que tiveram paciência de ler isso tudo, e a quem puder colaborar, pois já pesquisei muito e não encontrei saída para este problema.

Também não sei se dá para fazer o que você quer, mas você pode interceptar o botão de fechar:

import java.awt.*;
import java.awt.event.*;

class TesteFrame extends Frame {
    public TesteFrame() { super("Frame de Teste"); initComponents(); }
    private int nVezes = 0;
    private void initComponents() {
        setBounds (0, 0, 200, 100);
        addWindowListener (new WindowAdapter() {
            public void windowClosing (WindowEvent evt) {
                nVezes ++;
                // Nesta experiência, vamos encerrar este programa quando o usuário
                // clicar o X pela 5a. vez. 
                System.out.println ("O usuário clicou o X pela " + nVezes + "a. vez");
                if (nVezes >= 5) {
                // Javadoc:
                // If the program does not explicitly hide or dispose the 
                // window while processing this event, 
                // the window close operation will be cancelled.
                    dispose();
                }
            }
            public void windowClosed (WindowEvent evt) {
                System.out.println ("Saindo!");
                System.exit (0);
            }
        });
    }
    public static void main(String[] args) {
        TesteFrame fr = new TesteFrame();
        fr.show();
    }
}

Testei isso em Java 1.3 (Desktop) mas não deve ser muito diferente de sua JVM.