[SOLUCIONADO] JOptionPane não aparece na tela

Olá a todos, estou aprendendo java fazendo um sistema de ordem de serviços para a lojinha do meu irmão e para aprender eu quero fazer o código todo na unha, acredito q o design fica mais amigável e estruturável quando todos os detalhes são escritos no código, porem ao tentar exibir um “JOptionPane.showMensageDialog(null,“TEXTO”);” a caixa de dialogo simplesmente não aparece, ao clicar em qualquer lugar da tela o computador emite um som de como se tivesse uma caixa de dialogo aberta que você tem que clicar em “OK” ai eu aperto enter e volta, mas em momento algum o JOptionPane aparece na tela.

Eai @walberst, tranquilo?

É sempre bom apresentar o código para facilitar na resolução do seu problema :wink:

Então para exibir seria algo assim:

JOptionPane.showMessage(null, "Mensagem", "titulo", JOptionPane.INFO_MESSAGE);

sim, claro, o código é esse

package View;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

import Funcoes.Usuarios;

public class ViewTelaHome extends javax.swing.JFrame{

	public static void main(String[] args) {
		
		/****************************************/
		/*  CONFIGURAÇÃO DE EXIBIÇÃO DA JANELA  */
		/****************************************/
		
		JFrame window = new JFrame("TecnoCell");
        window.setSize(1366,780);
        window.setAlwaysOnTop(true);
        window.setResizable(false);
        window.setUndecorated(true);
        window.setLayout(null);
        window.setVisible(true);
        window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        window.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                for (double x = 0.0; x <= 1.0; x = x + 0.1) {
                    String val = x + "";
                    float f = Float.valueOf(val);
                    window.setOpacity(f);
                    try {
                        Thread.sleep(50);
                    } catch (InterruptedException ex) {

                    }
                }
            }
        });
        
        /****************************************/
		        /*  PAINEL CONTAINER  */
		/****************************************/        
		
        JPanel painel = new JPanel();
        painel.setLayout(new GridLayout(1, 1));
        painel.setBackground(new Color(55, 55, 55));
        painel.setBounds(0, 0, 1366, 780);
        window.add(painel);
        
        
        /****************************************/
		  /*  PAINEL DO MENU LATERAL ESQUERDO  */
		/****************************************/
        
        JPanel painelMenu = new JPanel();
        painelMenu.setLayout(new GridLayout(1, 1));
        painelMenu.setBackground(new Color(82, 30, 191));
        painelMenu.setBounds(0, 0, 300, 780);
        painel.add(painelMenu);
        
        
        /****************************************/
		/*  BOTAO LOGOTIPO ENCAMINHADO A HOME   */
		/****************************************/
        
        ImageIcon iconeLogo = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Logo.png"));
        JButton logotipo = new JButton();
        logotipo.setIcon(iconeLogo);
        logotipo.setLayout(new GridLayout());
        logotipo.setBounds(20, 10, 255, 92);
        logotipo.setBackground(new Color(0, 0, 0, 0));
        logotipo.setBorder(null);
        logotipo.setBorderPainted(false);
        logotipo.setContentAreaFilled(false);
        logotipo.setFocusPainted(false);
        logotipo.setCursor(new Cursor(Cursor.HAND_CURSOR));
        painelMenu.add(logotipo);
        
        
        /****************************************/
		       /*  ITEM DO MENU "VENDAS"  */
		/****************************************/
        
        ImageIcon iconeVendas = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/001-hands-and-gestures.png"));
        JButton vendas = new JButton();
        vendas.setText("PDV");
        vendas.setIcon(iconeVendas);
        vendas.setLayout(new GridLayout(1, 1));
        vendas.setBounds(0, 120, 300, 40);
        vendas.setBackground(new Color(0, 0, 0, 0));
        vendas.setBorder(null);
        vendas.setBorderPainted(false);
        vendas.setContentAreaFilled(false);
        vendas.setFocusPainted(false);
        vendas.setCursor(new Cursor(Cursor.HAND_CURSOR));
        vendas.setFont(new Font("Tahoma", Font.PLAIN, 23));
        vendas.setForeground(new Color(255, 255, 255));
        vendas.setHorizontalAlignment(SwingConstants.LEFT);
        vendas.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        vendas.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                vendas.setContentAreaFilled(true);
                vendas.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                vendas.setContentAreaFilled(false);
            }
        });
        
        
        /****************************************/
		/*  ITEM DO MENU "ORDEM DE SERVIÇO/OS"  */
		/****************************************/
        
        ImageIcon iconeOS = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/015-customer-support.png"));
        JButton OS = new JButton();
        OS.setText("OS");
        OS.setIcon(iconeOS);
        OS.setLayout(new GridLayout(1, 1));
        OS.setBounds(0, 170, 300, 40);
        OS.setBackground(new Color(0, 0, 0, 0));
        OS.setBorder(null);
        OS.setBorderPainted(false);
        OS.setContentAreaFilled(false);
        OS.setFocusPainted(false);
        OS.setCursor(new Cursor(Cursor.HAND_CURSOR));
        OS.setFont(new Font("Tahoma", Font.PLAIN, 23));
        OS.setForeground(new Color(255, 255, 255));
        OS.setHorizontalAlignment(SwingConstants.LEFT);
        OS.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        OS.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                OS.setContentAreaFilled(true);
                OS.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                OS.setContentAreaFilled(false);
            }
        });
        
        
        /****************************************/
			  /*  ITEM DO MENU "CLIENTES"  */
		/****************************************/
        
        ImageIcon iconeClients = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/012-target.png"));
        JButton clients = new JButton();
        clients.setText("CLIENTES");
        clients.setIcon(iconeClients);
        clients.setLayout(new GridLayout(1, 1));
        clients.setBounds(0, 220, 300, 40);
        clients.setBackground(new Color(0, 0, 0, 0));
        clients.setBorder(null);
        clients.setBorderPainted(false);
        clients.setContentAreaFilled(false);
        clients.setFocusPainted(false);
        clients.setCursor(new Cursor(Cursor.HAND_CURSOR));
        clients.setFont(new Font("Tahoma", Font.PLAIN, 23));
        clients.setForeground(new Color(255, 255, 255));
        clients.setHorizontalAlignment(SwingConstants.LEFT);
        clients.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        clients.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                clients.setContentAreaFilled(true);
                clients.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                clients.setContentAreaFilled(false);
            }
        });
        
        
        
        /****************************************/
			  /*  ITEM DO MENU "PRODUTOS"  */
		/****************************************/
        
        ImageIcon iconeProducts = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/002-box.png"));
        JButton products = new JButton();
        products.setText("PRODUTOS");
        products.setIcon(iconeProducts);
        products.setLayout(new GridLayout(1, 1));
        products.setBounds(0, 270, 300, 40);
        products.setBackground(new Color(0, 0, 0, 0));
        products.setBorder(null);
        products.setBorderPainted(false);
        products.setContentAreaFilled(false);
        products.setFocusPainted(false);
        products.setCursor(new Cursor(Cursor.HAND_CURSOR));
        products.setFont(new Font("Tahoma", Font.PLAIN, 23));
        products.setForeground(new Color(255, 255, 255));
        products.setHorizontalAlignment(SwingConstants.LEFT);
        products.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        products.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                products.setContentAreaFilled(true);
                products.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                products.setContentAreaFilled(false);
            }
        });
        
        
        /****************************************/
				/*  ITEM DO MENU "CAIXA"  */
		/****************************************/
        
        ImageIcon iconeBox = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/005-money.png"));
        JButton box = new JButton();
        box.setText("CAIXA");
        box.setIcon(iconeBox);
        box.setLayout(new GridLayout(1, 1));
        box.setBounds(0, 320, 300, 40);
        box.setBackground(new Color(0, 0, 0, 0));
        box.setBorder(null);
        box.setBorderPainted(false);
        box.setContentAreaFilled(false);
        box.setFocusPainted(false);
        box.setCursor(new Cursor(Cursor.HAND_CURSOR));
        box.setFont(new Font("Tahoma", Font.PLAIN, 23));
        box.setForeground(new Color(255, 255, 255));
        box.setHorizontalAlignment(SwingConstants.LEFT);
        box.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        box.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                box.setContentAreaFilled(true);
                box.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                box.setContentAreaFilled(false);
            }
        });
        
        
        
        /****************************************/
		/*  ITEM DO MENU "RELATORIO"  */
		/****************************************/
        
        ImageIcon iconeRelatorio = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/007-profits.png"));
        JButton relatorio = new JButton();
        relatorio.setText("RELATORIOS");
        relatorio.setIcon(iconeRelatorio);
        relatorio.setLayout(new GridLayout(1, 1));
        relatorio.setBounds(0, 370, 300, 40);
        relatorio.setBackground(new Color(0, 0, 0, 0));
        relatorio.setBorder(null);
        relatorio.setBorderPainted(false);
        relatorio.setContentAreaFilled(false);
        relatorio.setFocusPainted(false);
        relatorio.setCursor(new Cursor(Cursor.HAND_CURSOR));
        relatorio.setFont(new Font("Tahoma", Font.PLAIN, 23));
        relatorio.setForeground(new Color(255, 255, 255));
        relatorio.setHorizontalAlignment(SwingConstants.LEFT);
        relatorio.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        relatorio.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                relatorio.setContentAreaFilled(true);
                relatorio.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                relatorio.setContentAreaFilled(false);
            }
        });
        
        
        
        /****************************************/
		   /*  ITEM DO MENU "CONFIGURAÇÕES"  */
		/****************************************/
        
        ImageIcon iconeConfig = new ImageIcon(ViewTelaHome.class.getResource("Imagens/Icons/016-settings.png"));
        JButton config = new JButton();
        config.setText("CONFIGURAÇÕES");
        config.setIcon(iconeConfig);
        config.setLayout(new GridLayout(1, 1));
        config.setBounds(0, 420, 300, 40);
        config.setBackground(new Color(0, 0, 0, 0));
        config.setBorder(null);
        config.setBorderPainted(false);
        config.setContentAreaFilled(false);
        config.setFocusPainted(false);
        config.setCursor(new Cursor(Cursor.HAND_CURSOR));
        config.setFont(new Font("Tahoma", Font.PLAIN, 23));
        config.setForeground(new Color(255, 255, 255));
        config.setHorizontalAlignment(SwingConstants.LEFT);
        config.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));

        config.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                config.setContentAreaFilled(true);
                config.setBackground(new Color(55, 55, 55));
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                config.setContentAreaFilled(false);
            }
        });
        
        /********************************************/
		/*  ADICIONANDO OS ITENS DO MENU NO PAINEL  */
		/********************************************/
        
        painelMenu.add(vendas);
        painelMenu.add(OS);
        painelMenu.add(clients);
        painelMenu.add(products);
        painelMenu.add(box);
        painelMenu.add(relatorio);
        painelMenu.add(config);
        
       
        /****************************************/
		 /*  CONFIGURAÇÕES DO PAINEL DE LOGIN  */
		/****************************************/
        
        JPanel painelLogin = new JPanel();
        painelLogin.setLayout(new GridLayout(1, 1));
        painelLogin.setBackground(new Color(82, 30, 191));
        painelLogin.setBounds(550, 250, 500, 300);
        painel.add(painelLogin);
        
        JLabel acesso = new JLabel();
        acesso.setText("ACESSAR TECNOCELL");
        acesso.setLayout(new GridLayout(1, 1));
        acesso.setForeground(new Color(255, 255, 255));
        acesso.setBounds(55, 20, 400, 50);
        acesso.setFont(new Font("Tahoma", Font.PLAIN, 26));
        
        JLabel usuario = new JLabel();
        usuario.setText("USUARIO");
        usuario.setLayout(new GridLayout(1, 1));
        usuario.setForeground(new Color(255, 255, 255));
        usuario.setBounds(100, 100, 100, 30);
        usuario.setFont(new Font("Tahoma", Font.PLAIN, 15));
        
        JTextField user = new JTextField();
        user.setBounds(100, 130, 300, 30);
        user.setFont(new Font("Tahoma", Font.PLAIN, 15));
        user.setBackground(new Color(255, 255, 255));
        user.setBorder(null);
        user.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        
        JLabel password = new JLabel();
        password.setText("SENHA");
        password.setLayout(new GridLayout(1, 1));
        password.setForeground(new Color(255, 255, 255));
        password.setBounds(100, 160, 100, 30);
        password.setFont(new Font("Tahoma", Font.PLAIN, 15));
        
        JPasswordField pass = new JPasswordField();
        pass.setBounds(100, 190, 300, 30);
        pass.setFont(new Font("Tahoma", Font.PLAIN, 15));
        pass.setBackground(new Color(255, 255, 255));
        pass.setBorder(null);
        pass.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

        pass.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
                	//logar();
                }
            }
        });
        
        JButton login = new JButton();
        login.setBounds(100, 240, 120, 35);
        login.setText("ACESSAR");
        login.setBackground(new Color(0, 0, 0, 0));
        login.setFont(new Font("Tahoma", Font.PLAIN, 15));
        login.setCursor(new Cursor(Cursor.HAND_CURSOR));
        login.setForeground(new Color(255, 255, 255));
  //    login.setBorder(new RoundedBorder(20));
        login.setBorderPainted(true);
        login.setContentAreaFilled(false);
        login.setFocusPainted(false);

        login.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
            	String userName = user.getText();
            	String senha = pass.getPassword().toString();
            	if(logar(userName,senha) == true){
            		
            	}else {
            		JOptionPane.showMessageDialog(null, "Usuario ou senha Inconrreto");
            	}
            }
        });
        
        JButton sair = new JButton();
        sair.setBounds(280, 240, 120, 35);
        sair.setText("SAIR");
        sair.setBackground(new Color(0, 0, 0, 0));
        sair.setFont(new Font("Tahoma", Font.PLAIN, 15));
        sair.setCursor(new Cursor(Cursor.HAND_CURSOR));
        sair.setForeground(new Color(255, 255, 255));
 //     sair.setBorder(new RoundedBorder(20));
        sair.setBorderPainted(true);
        sair.setContentAreaFilled(false);
        sair.setFocusPainted(false);

        sair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                System.exit(0);
            }
        });
        
        
        
        /********************************************/
		/* ADICIONANDO OS ITENS DO LGOIN NO PAINEL  */
		/********************************************/
        
        
        painelLogin.add(acesso);
        painelLogin.add(usuario);
        painelLogin.add(user);
        painelLogin.add(password);
        painelLogin.add(pass);
        painelLogin.add(login);
        painelLogin.add(sair);
    }
	
	private static boolean logar(String user, String pass) {
      	//Efetuando o login
        Usuarios logar = new Usuarios();
        return logar.accessDao(user, pass);
    }
}

To muito focado em aprender o design por código, não gosto das bagunças de código criadas pelas IDE’s e no arrasta e solta nunca fica do jeito que eu quero, e assim ta ficando com o design que eu imaginei porem o JOptionPane não ta exibindo pra ser funcional, é como se o JOptionPane estivesse sendo exibido por trás do JPanel e não sei como trazer para o primeiro plano, agradeço desde já a ajuda pela solução e qualquer diga de como melhorar meu código também será bem vinda.

O primeiro parâmetro do showMessageDialog deveria ser o componente ou a janela “pai” do JOptionPane e você está passando null.

1 curtida

Testei seu código aqui, problema está no

window.setAlwaysOnTop(true);
window.setUndecorated(true);

Os dois em conjuntos não funciona legal, retirando o setAlwaysOnTop aparece o JOptionPane ou se retirar o Undecorated tbm, eu retiraria o setAlways…

Pode passar null que será utilizado o JFrame padrão.

3 curtidas

Cara, deu certo, eu tava tao focado achando que o erro tava na posição do JPanel que nem lembrava que tinha colocado o JFrame para sobrepor tudo. Obrigado