Este artigo apresenta como usar o modo sem cabeça na plataforma Java Standard (Java SE, também conhecida como J2SE).
O modo sem cabeça é uma configuração do sistema quando falta a tela, o teclado ou o mouse. Parece incrível, mas na verdade você pode concluir diferentes operações nesse modo, mesmo com dados gráficos.
Onde posso usar este modelo? Pense no seu aplicativo gerando constantemente uma imagem. Ao criar imagens, você deve aplicar nem a tela nem o teclado. Vamos supor que seu aplicativo agora tenha uma arquitetura principal ou servidor proprietário, mas esse serviço não possui exibição, teclado ou mouse. A decisão ideal é usar um grande número de poder de computação visual em vez de características não visuais. A imagem gerada no modo sem cabeça pode ser passada para o sistema de cabeça para uma renderização mais profunda.
Existem muitos métodos no Java.awt.toolkit e Java.awt.graphicSenvironment Classe. Mas algumas categorias, como tela e painel, podem ser executadas no modo sem cabeça. Após a plataforma J2SE 1.4, ele fornece suporte para o modo sem cabeça.
Nota: Este artigo se concentra no documento da versão da plataforma Java SE6. Qualquer API ou outras plataformas aprimoradas de Java SE são revisadas e aprovadas pelo grupo de especialistas JSR270 (JSR 270 Expert Group.).
Kit de ferramentas
Java.awt.toolkit Classe é uma classe abstrata de pais do abstrato Window Toolkit (AWT). As subclasses do Toolkit são usadas para vincular vários componentes AWT a um kit de ferramentas local específico.
Muitos componentes serão afetados se o dispositivo, teclado ou mouse não forem suportados. Um construtor adequado deve lançar uma exceção de UshlessException:
Esse componente pesado requer uma função gráfica de nível par -de -pó para suportar.
Os componentes relacionados a componentes de tela, painel e imagem não precisam lançar as anormalidades da Usexception, porque esses componentes podem usar funções vazias no nível do sistema operacional e depois processadas como componentes leves.
O kit de ferramentas do Headless também liga os componentes Java aos recursos locais, mas só fará isso apenas quando o recurso não incluir dispositivos de exibição ou dispositivos de entrada.
Ambiente gráfico
A classe Java.awt.graphicSenvalonment é uma classe abstrata que descreve uma coleção de objetos GraphicsDevice e objetos de fonte que podem ser usados na tecnologia Java em uma determinada plataforma. Os recursos no GraphicSenvalonment podem ser equipamentos locais ou longos. O objeto GraphicsDevice pode ser um cache de exibição, impressora ou gráfico, e eles são o objetivo da função de desenho gráfica2d. Cada GraphicsDevice possui muitos objetos GraphicsConfiguration relacionados a ele. Esses objetos especificam diferentes ambientes de configuração, e o GraphicsDevice pode ser usado nesses ambientes de configuração.
A Tabela 1 mostra o método GraphicSenValonment, verifique o suporte do modo sem cabeça
Tabela 1. Método do modo sem cabeça
NOTA: O método isHeheLless () verifica os atributos específicos do sistema, java.awt.headless em vez da configuração de hardware do sistema.
O código jogado pela HeadlessEception depende do Exibir, do teclado e do mouse como um ambiente que não suporta nenhum deles.
Defina o modo sem cabeça
Use o modo sem cabeça para operar, você deve primeiro entender como verificar e definir os atributos do sistema relacionados a isso. Além disso, você deve entender como criar uma classe de implementação sem cabeça para usar uma barra de ferramentas.
Configuração do atributo do sistema
Para ativar o modo sem cabeça, você precisa usar o método setProperty () para definir os atributos do sistema correspondente. Este método permite definir o atributo do sistema com o valor esperado.
System.setProperty ("java.awt.headless", "true");No código acima, Java.awt.headless é um atributo do sistema, e true é o valor que definimos.
Se você deseja usar o ambiente sem cabeça e tradicional em um dos mesmos programas, pode usar a seguinte linha de comando para concluir:
java -djava.awt.headless = true
Crie o kit de ferramentas padrão
Se os atributos do sistema do nome de java.awt.headless estiverem definidos como true, o kit de ferramentas sem cabeça será usado. Em seguida, use o método getDefaultToolkit () para criar uma instância de uma ferramenta sem cabeça:
Toolkit TK = Toolkit.getDefaultToolkit ();
Verificação do modo sem cabeça
Para verificar a usabilidade do modo de headess, use o método isheadless () da classe Graphicsenvironment ::
Graphicsenvironment ge = graphicsenvironment.getlocalgraphicsenvironment ();
Este método verifica os atributos do sistema java.awt.headless. Se esse atributo tiver um valor de verdadeiro, ele lançará uma ULESCECTIÇÃO DE CABEÇA de um kit de ferramentas e dependência de uma classe de exibição, teclado e mouse GraphicSenValonment.
Operação no modo sem cabeça
Depois de configurar o modo sem cabeça e criar uma instância do kit de ferramentas sem cabeça, seu aplicativo pode executar as seguintes operações:
Tela (tela)
O código a seguir desenhará uma área retangular em branco na tela e você poderá desenhar linhas nele. Você pode usar a classe Canvas para criar um novo componente de tela.
Canvas finais C = novo Canvas () {public void Paint (gráficos G) {retângulo r = getBounds (); , R.Width -1, 0);}};Fontes (fonte)
Este código mostra como usar a fonte para desenhar uma string de texto e definir a fonte do texto. O objeto gráfico é usado para desenhar esta string.
Public void Paint (Gráfico G) {G.SetFont (New Font ("Arial", Font.italic, 12); G.DrawString ("Test", 32, 8);}
Cores
Este código mostra como usar os valores especificados de vermelho, verde e azul para definir a cor de uma linha. O objeto gráfico é usado para desenhar esta linha.
Paint de vazio público (gráficos G) {G.SetColor (nova cor (255, 127, 0));Imagens
No código a seguir, o método read () da classe javax.imageio.imageio decodificou o arquivo de toranja.jpg mostrado na Figura 1 e retornou uma imagem de cache.
Imagem I = NULL;
Figura 1. arquivo de imagem de grapefruit.jpg
Imprimir
Este código demonstra como imprimir a tela disponível, você pode usar o método de pintura para personalizar a tela padrão da impressora.
Impressorjob pj = impressorjob.getprinterjob (); .
Bipe
O código a seguir mostra o método BEEP se o método BEEP da classe Toolkit for usado.
Toolkit TK = Toolkit.getDefaultToolkit ();
Exemplo simples de usar o modo sem cabeça
O seguinte exemplo de Basicsics usa todas as funções descritas no artigo.
Para executar este exemplo, você precisa usar o JAVAC para compilar o código a seguir. Copie o arquivo de imagem de toranja.jpg para o diretório em que a classe sem cabeça está localizada.
Importar java.awt.*; // Chame isso antes do kit de ferramentas inicializar, ou seja, // antes de ter sido chamado de Toolkit.getDefaultToolkit (). Propriedade é definida como TRUE, também será o ANSTANCE DE CABEÇA Graphicsenvironment.getLocalGraphicsVororonment (); ; Painel é permitido. Println ("Botão é criado:" Criado); .Height -1); e fontes g.setFont (New Font ("Arial", Font.italic, 12); G.DrawString ("Test", 32, 8);}; // e todas as operações funcionam corretamente. 32, 128, 128); .PrintStackTrace (System.err);} Imagem final IM = I; (PageIndex> 0) {Ret Urn Printable.no_such_page;} (Graphics2d) G) .Translate (pf.getimageablex (), pf.getimageable ()); pintar a imagem. Z) {z.printStackTrace (System.err);}}}}}}}A Figura 2 mostra o resultado da impressão neste exemplo.
Figura 2. Saída de impressão de Basics sem cabeça.
Além disso, você pode ver as seguintes informações:
Modo de cabeça: truejava.awt.headlessceptionat java.awt.graphicsenvironment.CHECKHEENS (fonte desconhecida) em java.awt.window. Java: 24) O quadro é criado: falsejava.head.headlessception java.awt.graphicsenvalonment.Checkheadless (fonte desconhecida) t java.awt.button. é criado: false
NOTA: Para os fins da demonstração, o código inicial fará com que esse aplicativo jogue 2 anormalidades de 2 java.awt.headlessExceps.
Como substituto da maneira anterior, você pode colocar as informações de saída padrão em um arquivo e imprimir o arquivo. Nesse caso, use a seguinte linha de comando para executar este exemplo:
Java HeadlessBasics 2> Standard_Output.txt
Converta o aplicativo existente no modo sem cabeça.
Como você converte o aplicativo existente em modo de cabeça executável? A maneira mais eficaz de executar essa conversão é analisar seu código -fonte para determinar que qualquer função depende do modo sem cabeça. Em outras palavras, para realizar os mesmos recursos, você deve encontrar a classe e os métodos que lançarão a exceção da Headlessception e, em seguida, usarão o modo independente sem cabeça para substituir essas classes e métodos.
Você pode usar a API Java SE 6 para explicar para determinar se uma classe ou método específico suporta o modo sem cabeça. Se um componente específico não suportar o modo sem cabeça, a única anormalidade que seu programa precisará capturar é a UlessException. É expulso antes de outras possíveis anormalidades. É por isso que não há necessidade especial de capturar outras anormalidades no exemplo de código desta seção: use o modo sem cabeça ".
Você definitivamente encontrará os benefícios de outros métodos úteis para usar o modo sem cabeça. Esperamos que este artigo possa ajudá -lo a concluir esta tarefa e jogar um novo mundo na plataforma Java SE.