GARANTIR DESCONTO

Fórum Chamando Telas JDialog #568879

29/04/2010

0

Tenho uma tela principal (JFrame) e alguns JMenu e JMenuItem e preciso chamar tela de Clientes(JDialog). Tentei usar setVisible(true) mas não funciona, ele não mostra a tela! Tentei usando main() mas também não mostra! Alguem ai tem alguma idéia? Grato!
ºbrunoº

ºbrunoº

Responder

Posts

29/04/2010

Rafael Parizi

E ae Bruno, Cara você pode usar método
show(boolean b)
ou ainda apenas o método
show()
. Verifica se o seu menu está com a Action correta. Caso queira posicionar o seu JDialog no centro da tela, usa esse método
jDialog.setLocationRelativeTo(null);
Espero ter colaborado. Abraço.
Responder

Gostei + 0

29/04/2010

ºbrunoº

Hmm... ajudou sim, mas se puder detalhar mais um pouco, sou iniciante, iria ajudar mais ainda! Grato!
Responder

Gostei + 0

29/04/2010

Rafael Parizi

Olha só Bruno, esse é o método que fiz para chamar um jDialog:
       jDialogMensagem.setLocationRelativeTo(null);
       Dimension d = new Dimension();
       d.setSize(200, 200);
       jDialogMensagem.setMinimumSize(d);
       jDialogMensagem.setVisible(true);
Primeiramente, o jDialogMensagem é posicionado no centro da tela com o método
  jDialogMensagem.setLocationRelativeTo(null);
Depois, cria-se um objeto da classe [b]Dimension[/b] para poder dar um tamanho ao seu jDialog. Dá-se um tamanho [i]width[/i] e [i]height[/i] e seta-se o minimo tamanho do seu jdialog com essa dimensão.
Dimension d = new Dimension();
       d.setSize(200, 200);
       jDialogMensagem.setMinimumSize(d);
Por fim, mostra o jDialog com o:
 jDialogMensagem.setVisible(true);
[/b]
Responder

Gostei + 0

29/04/2010

ºbrunoº

Hmm... vou tentar fazer aqui =D Uso o NetBeans 6.7 IDE e uso o seguinte codigo para deixar JDialog no centro da tela:

Dimension tamanhoTela = getToolkit().getScreenSize();
        Dimension tamanho = getSize();
        setLocation((tamanhoTela.width - tamanho.width) / 2, (tamanhoTela.height - tamanho.height) / 2);

Bom esse metodo que vc citou serve somente para chamar JFrame para JDialog ou poderia chamar J-Frame para JPanel?
Responder

Gostei + 0

29/04/2010

Rafael Parizi

Se você está pensando em mostrar ou não jPanel através do setvisible vai funcionar. Quanto ao setLocationRelativeTo(null) não testei se funciona. Acredito que não. :P Analisando o método setLocationRelativeTo nota-se:
 setLocation(centerPoint.x - paneSize.width / 2, centerPoint.y - paneSize.height / 2);
Parecido ou igual ao que vc faz. Abraço.
Responder

Gostei + 0

29/04/2010

ºbrunoº

Bom... mais uma duvida: Onde eu insiro os codigos? No initcomponents() ou no actionPerformed da ligação?
Responder

Gostei + 0

29/04/2010

Rafael Parizi

Bruno, No meu caso (vc pode chamar aonde achar melhor, geralmente onde é a chamada de eventos de botão, menus...etc), chamo os jDialog's quando ocorre alguma exceção. Por exemplo, tenho um jTextField para entrada de números inteiros. Caso o usuário forneça uma String, lança uma exceção do tipo [color=red]NumberFormatException[/color] chamando um jDialog que informa ao usuário que a sua entrada é inválida. Os códigos referentes à chamada do jDialog vão no [i]cacth[/i] do bloco de exceptions [i]try{....}catch{Exception e}[/i]. [i]No NetBeans IDE vc pode adicionar um evento (bt direito mouse no componente e eventos..). Aí larga a chamada dentro do método que o NetBeans cria. :)[/i] Abraço.
Responder

Gostei + 0

29/04/2010

ºbrunoº

Hmm... Então, como se trata de um sub-menu, vou dar um actionPerformed e inserir o codigo para chamar a minha tela de Clientes! Ou ao menos eu sempre fazia assim!
Responder

Gostei + 0

29/04/2010

ºbrunoº

private void Clientes ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
       Clientes.setLocationRelativeTo(null);   
       Dimension d = new Dimension();   
       d.setSize(200, 200);   
       Clientes.setMinimumSize(d);   
       Clientes.setVisible(true);
    }
Joguei dentro do actionPerformed mas deu o seguinte erro: [img]http://i42.tinypic.com/etb98i.jpg[/img] O que isso significa?
Responder

Gostei + 0

29/04/2010

Rafael Parizi

Bem, eu não sei como que você nomeia as suas variáveis. A idéia é vc usar os ActionPerformed em componentes do seu frame. Aí vai um código que copiei de um sistema que eu estou desenvolvendo.
private void jButtonAddNovoActionPerformed(java.awt.event.ActionEvent evt) {                                               
        Criterio c = new Criterio();
        ArmazenaDados arm = new ArmazenaDados();
        String criterios = ".....";
        c.setNomeCriterio(jTextFieldNomeNovo.getText());
        if (!arm.existeCriterio(c.getNomeCriterio())) {
            informacoesProcesso.add("-> Criterio adicionado: " + c.getNomeCriterio());
            criteriosDefinidos.add(c);
            jTextFieldNomeNovo.setText("");
        } else {
            jLabelStatus.setText("Critério já existente!");
            jDialogMensagem.setLocationRelativeTo(null);
            jDialogMensagem.show();
        }
        arm.armazenarCriteriosDefinidos(criteriosDefinidos);
        ArrayList<Criterio> critsDefinidos = new ArrayList<Criterio>();
        critsDefinidos = arm.recuperarCriteriosDefinidos();
        for (Criterio cTemp : critsDefinidos) {
            criterios += "-> " + cTemp.getNomeCriterio() + "\n";
        }
        jTextAreaCriteriosDefinidos.setText(criterios);
    }    
Perceba que no [i]else[/i] eu chamo o jDialog. Mas o ActionPerformed foi definida para um componente da minha aplicação. Um jButton. Abraço
Responder

Gostei + 0

29/04/2010

Rafael Parizi

[quote="?Bruno?"]
private void Clientes ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
       Clientes.setLocationRelativeTo(null);   
       Dimension d = new Dimension();   
       d.setSize(200, 200);   
       Clientes.setMinimumSize(d);   
       Clientes.setVisible(true);
    }
Joguei dentro do actionPerformed mas deu o seguinte erro: [img]http://i42.tinypic.com/etb98i.jpg[/img] O que isso significa?
Clientes é o seu jDialog? ou é uma classe de clientes?
Responder

Gostei + 0

30/04/2010

ºbrunoº

Vou explicar mais ou menos como eu crio as telas: Clientes.java e um JDialog, eu criava um JFrame e jogava em cima um Panel! Mas acabei mudando e criando direto os JPanel e JDialog! Tela principal e um JFrame, Clientes que estou desenvolvendo e um JDialog, mas ta dificil de fazer o JFrame chamar o JDialog! Eu ate poderia mudar esse JDialog para um JFrame, mas dai ele iria abrir outro "programa", iria virar uma baita gambiarra! Esse JFrame que e minha tela Principal, criei ela no modo Designer, sei que e possivel criar ela no modo codigo-fonte mas e bem complicado. Em relação aos botões, sempre ativei actionPerformed e ali insiro os codigos necessarios para executar o que o botao pede, no caso ali, seria para chamar outra tela, de um JMenuItem para um JDialog! Entendeu? Segue abaixo o codigo-fonte da forma que trabalho:
package Menus;

import java.awt.Dimension;

public class Principal extends javax.swing.JFrame {

        /** Creates new form Principal */
    public Principal() {
        initComponents();

        
        setExtendedState( MAXIMIZED_BOTH );
    }

    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        Menu = new javax.swing.JMenuBar();
        Arquivo = new javax.swing.JMenu();
        AlterarSenha = new javax.swing.JMenuItem();
        Separador = new javax.swing.JPopupMenu.Separator();
        Sair = new javax.swing.JMenuItem();
        Cadastro = new javax.swing.JMenu();
        Clientes = new javax.swing.JMenuItem();
        Funcionarios = new javax.swing.JMenuItem();
        jSeparator2 = new javax.swing.JPopupMenu.Separator();
        Multimidia = new javax.swing.JMenu();
        Jogos = new javax.swing.JMenu();
        PlaystationII = new javax.swing.JMenuItem();
        Computador = new javax.swing.JMenuItem();
        Filmes = new javax.swing.JMenuItem();
        Relatorios = new javax.swing.JMenu();
        Configuracoes = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Sistema");
        setName("Principal"); // NOI18N
        setResizable(false);

        Arquivo.setText("Arquivo");
        Arquivo.setFont(new java.awt.Font("Verdana", 0, 11));
        Arquivo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ArquivoActionPerformed(evt);
            }
        });

        AlterarSenha.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        AlterarSenha.setFont(new java.awt.Font("Verdana", 0, 11));
        AlterarSenha.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/4655_128x128.png"))); // NOI18N
        AlterarSenha.setText("Alterar Senha");
        Arquivo.add(AlterarSenha);
        Arquivo.add(Separador);

        Sair.setFont(new java.awt.Font("Verdana", 0, 11));
        Sair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Cópia de exit-128.png"))); // NOI18N
        Sair.setText("Sair");
        Sair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SairActionPerformed(evt);
            }
        });
        Arquivo.add(Sair);

        Menu.add(Arquivo);

        Cadastro.setText("Cadastro");
        Cadastro.setFont(new java.awt.Font("Verdana", 0, 11));

        Clientes.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK));
        Clientes.setFont(new java.awt.Font("Verdana", 0, 11));
        Clientes.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/People-128.png"))); // NOI18N
        Clientes.setText("Clientes");
        Clientes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ClientesActionPerformed(evt);
            }
        });
        Cadastro.add(Clientes);

        Funcionarios.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_MASK));
        Funcionarios.setFont(new java.awt.Font("Verdana", 0, 11));
        Funcionarios.setText("Funcionários");
        Cadastro.add(Funcionarios);
        Cadastro.add(jSeparator2);

        Multimidia.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Movies-black-icon.png"))); // NOI18N
        Multimidia.setText("Multimídia");
        Multimidia.setFont(new java.awt.Font("Verdana", 0, 11));

        Jogos.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Gamespot-64.png"))); // NOI18N
        Jogos.setText("Jogos");
        Jogos.setFont(new java.awt.Font("Verdana", 0, 11));

        PlaystationII.setFont(new java.awt.Font("Verdana", 0, 11));
        PlaystationII.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Sony-Playstation-2-icon.png"))); // NOI18N
        PlaystationII.setText("Playstation 2");
        Jogos.add(PlaystationII);

        Computador.setFont(new java.awt.Font("Verdana", 0, 11));
        Computador.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/black-server-icon.png"))); // NOI18N
        Computador.setText("Computador");
        Computador.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ComputadorActionPerformed(evt);
            }
        });
        Jogos.add(Computador);

        Multimidia.add(Jogos);

        Filmes.setFont(new java.awt.Font("Verdana", 0, 11));
        Filmes.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/popcorn-128x128.png"))); // NOI18N
        Filmes.setText("Filmes");
        Multimidia.add(Filmes);

        Cadastro.add(Multimidia);

        Menu.add(Cadastro);

        Relatorios.setText("Configurações");
        Relatorios.setFont(new java.awt.Font("Verdana", 0, 11));
        Menu.add(Relatorios);

        Configuracoes.setText("Ajuda");
        Configuracoes.setFont(new java.awt.Font("Verdana", 0, 11));

        jMenuItem1.setFont(new java.awt.Font("Verdana", 0, 11));
        jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/8446_128x128.png"))); // NOI18N
        jMenuItem1.setText("Manual do Usuário");
        Configuracoes.add(jMenuItem1);

        Menu.add(Configuracoes);

        setJMenuBar(Menu);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 279, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    private void ArquivoActionPerformed(java.awt.event.ActionEvent evt) {                                        
        
    }                                       

    private void ClientesActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:

    }                                        

    private void SairActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        System.exit(0);
    }                                    

    private void ComputadorActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:       
    }                                          
    
    public static void main() {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Principal().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JMenuItem AlterarSenha;
    private javax.swing.JMenu Arquivo;
    private javax.swing.JMenu Cadastro;
    private javax.swing.JMenuItem Clientes;
    private javax.swing.JMenuItem Computador;
    private javax.swing.JMenu Configuracoes;
    private javax.swing.JMenuItem Filmes;
    private javax.swing.JMenuItem Funcionarios;
    private javax.swing.JMenu Jogos;
    private javax.swing.JMenuBar Menu;
    private javax.swing.JMenu Multimidia;
    private javax.swing.JMenuItem PlaystationII;
    private javax.swing.JMenu Relatorios;
    private javax.swing.JMenuItem Sair;
    private javax.swing.JPopupMenu.Separator Separador;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JPopupMenu.Separator jSeparator2;
    // End of variables declaration                   

}
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar