Construindo uma aplicação JDialog

Já imaginou desenvolver uma aplicação semelhante ao XDialog, Kdialog ou Gdialog? Neste artigo vamos ver como estes dialogs funcionam e construiremos o nosso próprio em Java. Espero que gostem!

[ Hits: 29.643 ]

Por: Allan kardec Santos Oliveira em 05/05/2007


Funcionamento



O sistema começa ser executado pelo método main, este vai chamar o método jdialog() e passará os argumentos de linha de comando. O método jdialog, por sua vez, analisará os argumentos e caso estejam incorretos, chamará o método parametroinvalido. O método parametroinvalido exibirá uma mensagem de advertência do erro e mostrará também como usar o jdialog.

Caso os argumentos analisados pelo método jdialog estejam corretos, será chamado o método solicitado de acordo com o argumento, no caso (opendialog, yesno, opendialog, savedialog, msgbox, erromsgbox). No final da execução, o método jdialog fará uma verificação na variável retorno, e se a mesma não estiver vazia ou null, será exibida como retorno no shell.

Código completo da classe jdialog

import javax.swing.*;
import java.lang.String.*;
import java.io.*;
public class jdialog {
  public String retorno;
  public jdialog(String arg[]){
    retorno="";
    if (arg.length==0){      //testa se foi digitado algum parâmetro, caso contrario chama método
      parametroInvalido();  //parametroinvalido e fecha o programa.
      System.exit(0);
    }
    if (arg.length<3)  //verifica se a opção requisitada é opendialog, savedialog ou inputbox
                                //pois estas podem ser executadas somente com dois paramentos
      if (!(arg[0].equals("--opendialog") || arg[0].equals("--savedialog") || (arg[0].equals("--inputbox")))){
        parametroInvalido();
        System.exit(0);
      }  
// Este bloco testa qual opção escolhida e chama o método requisitado //
    if (arg[0].equals("--erromsgbox"))
      erromsgbox(arg[1],arg[2]);
    if (arg[0].equals("--msgbox"))
      msgbox(arg[1],arg[2]);
    if (arg[0].equals("--inputbox"))
      if (arg.length==3)
        inputbox(arg[1],arg[2]);
      else
        inputbox(arg[1],"");
    if (arg[0].equals("--yesno"))
      yesno(arg[1],arg[2]);
    if (arg[0].equals("--opendialog"))
      opendialog();
    if (arg[0].equals("--savedialog"))
      savedialog();
    if (retorno!=null && retorno!="" && !retorno.equals("null"))
      System.out.println(retorno);
    System.out.exit(0);
  }
  //------------------------------------------------------//
  public void inputbox(String text, String val_padrao){//chama a caixa inputdialog e guarda o retorno
    retorno=JOptionPane.showInputDialog(text,val_padrao);  // na variável retorno.
  }
  //------------------------------------------------------//
  public void msgbox(String text, String titulo){ //chama a caixa MessageDialog
    JOptionPane.showMessageDialog(null,text,titulo,JOptionPane.INFORMATION_MESSAGE);
  }
  //------------------------------------------------------//
  public void erromsgbox(String text, String titulo){ //chama a caixa MessageDialog com ícone de erro
    JOptionPane.showMessageDialog(null,text,titulo,JOptionPane.ERROR_MESSAGE);
  }

  //-------------------------------------------------------//
  public void yesno(String text, String titulo){ //chama a caixa de confirmação, colocando a resposta
                                                                        // na variável retorno
    retorno=""+JOptionPane.showConfirmDialog(null,text,titulo,JOptionPane.YES_NO_OPTION);
  }
  //--------------------------------------------------------//
  public void opendialog(){
    JFileChooser opendlg = new JFileChooser(); //cria opendlg
    opendlg.setFileSelectionMode(JFileChooser.FILES_ONLY); //configura para selecionar somente arquivos
    opendlg.showOpenDialog(opendlg); //abre a caixa opendlg
    retorno=""+opendlg.getSelectedFile(); //recupera o arquivo selecionado
   //obs.: concatenei "" com opendlg.getSelectedFile() para se transformar em uma string já que
   //getSelectedFile() é do tipo File;
   }
  //---------------------------------------------------------//
  public void savedialog(){
    JFileChooser savedlg = new JFileChooser(); //cria savedlg
    savedlg.setFileSelectionMode(JFileChooser.FILES_ONLY); //configura para selecionar somente arquivos
    savedlg.showSaveDialog(savedlg); //abre a caixa sa
    retorno=""+savedlg.getSelectedFile();
   //obs.: concatenei "" com opendlg.getSelectedFile() para se transformar em um string já que
   //getSelectedFile() é do tipo File;
  }

  //----------------------------------------------------------//
  public void parametroInvalido(){ //mostra advertência na tela e como se deve utilizar o jdialog
    System.out.println("");
    System.out.println("");
    System.out.println("");
    System.out.println("Jdialog versão 1.0");
    System.out.println("*********Parâmetro invalido!***********");
    System.out.println("Use :");
    System.out.println("     jdialog --erromsgbox <texto> <titulo>        Caixa de mensagem de erro    ");
    System.out.println("     jdialog --msgbox <texto> <titulo>            Caixa de mensagem            ");
    System.out.println("     jdialog --inputbox <texto> <val_padrao>      Caixa de entrada de dados    ");
    System.out.println("     jdialog --yesno <texto> <titulo>             Confirmação com botões yes/no");
    System.out.println("     jdialog --opendialog                         Janela para abrir arquivos   ");  
    System.out.println("     jdialog --savedialog                         Janela para salvar arquivos  ");
    System.out.println("");
  }
  public static void main(String args[]){
  jdialog j = new jdialog(args);
  }
}
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Funcionamento
   3. Criando um arquivo shell script para executar nossa classe
   4. Criando um shell script que utilize o aplicativo jdialog
Outros artigos deste autor

Emulando o Internet Explorer no Slackware

Java Native Interface

Criando classe Java para conectar e manipular dados no MySQL

Leitura recomendada

Transforme seu celular em terminal sem fio SSH/Telnet

Declaração de IRPF 2006 pelo Linux

Gerando arquivos PDF com Java e iText

JlGui - Java Media Player

Terasology: O Minecraft gratuito e com gráfico realista

  
Comentários
[1] Comentário enviado por GilsonDeElt em 05/05/2007 - 23:14h

Boa noite.
Cara, ainda não li todo seu artigo, e não entendo muito de Java, mas pelo que li já percebi que você fez uma grande contribuição à comunidade!!!
Até onde vi, tá tudo muito bem explicado.
Quando eu terminar de ler, ponho mais comentários.
Valeu!!!

[2] Comentário enviado por sombriks em 06/05/2007 - 00:13h

Parabéns, vc acabou de aumentar a família Dialog, :D

[3] Comentário enviado por super-root em 07/05/2007 - 09:20h

Olá pessoal, existe uma falha de digitação no código completo. Vair ai o codigo correto:

<<System.out.exit(0)>> este é o erro

<<System.exit(0)>> código correto


Contribuir com comentário