Como fazer uma tela mudar para tela de splash screen ao clicar em um botão play?

25 respostas
java
E
Boa Tarde a todos,bom tenho este botão na minha classe main.java:

JButton btnPlay = new JButton(" PLAY");

btnPlay.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {
e quero um comando que ao aperta o botão play mude a tela para a outra tela splash screen,nome desta classe sendo login.java:

package view;

import javax.swing.JPanel;

import javax.swing.JLabel;

import javax.swing.ImageIcon;

import javax.swing.JProgressBar;

import java.awt.Color;

public class login extends JPanel {

/**
  • Create the panel.
    */
    public login() {
    setLayout(null);
    JProgressBar progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);
    progressBar.setStringPainted(true);
    progressBar.setForeground(Color.GREEN);
    progressBar.setBackground(Color.WHITE);
    progressBar.setBounds(0, 392, 248, 24);
    add(progressBar);
    JLabel label = new JLabel("");
    label.setIcon(new
    ImageIcon(login.class.getResource("/view/Linda.png")));
    label.setBounds(0, 0, 340, 427);
    add(label);
    }
    }
    e muito difícil o que fazer pessoal?

25 Respostas

R

vc só quer chamar outra tela?

R

cria dois forms, um como vc citou “Login” e o outro “QualquerCoisa”

Aí vc coloca o botão no seu form, e depois clica duas vezes no botão, ou, botão direito, action, action performed.

vai abrir a página de código fonte, aí vc coloca de acordo com o nome que vc colocou lá, eu usei “QualquerCoisa”:

QualquerCoisa qualquer = new QualquerCoisa(); // Aqui vc instancia o form, chama ele e "renomeia"
qualquer.setVisible(true); //aqui vc mostra ele na tela
dispose(); // e aqui vc fecha o form de "Login"
E

vou fazer isso isso cara,eu adoro programação qualquer coisa eu retorno obrigado.

E

cara ele aceitou numa boa só estou com dúvidas nesse form o que significa,por favor tem como colocar corretamente pra mim essa classe qualquer coisa si chama main.java:

JButton btnPlay = new JButton(" PLAY");

btnPlay.addActionListener(new ActionListener() {

private main main;
public void actionPerformed(ActionEvent arg0) {
	main = new main(); // Aqui vc instancia o form, chama ele e "renomeia"
	main.setVisible(true); //aqui vc mostra ele na tela
	dispose(); // e aqui vc fecha o form de "Login"
	
	
}
R

Bom dia, cara “Form” em português, significa formulário. É nele que você vai ter sua interface.
Mas no caso, esse é o Form JFrame.

Eu uso o Netbeans, então pra adicionar um novo Form JFrame, vc vai em um pacote seu, clica com o botão direito, vai em novo, e depois em Form JFrame.

E
vou deixar aqui minhas duas jframes a primeira e da classe main.java:

package view;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JLabel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import java.awt.Color;

import java.awt.Font;

import com.jgoodies.forms.factories.DefaultComponentFactory;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class main extends JFrame {

/**

*

<em>/

private static final long serialVersionUID = 1L;

private JPanel contentPane;

/</em>*
  • Launch the application.
    /
    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    main frame = new main();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    }
    /
    *
  • Create the frame.
    */
    public main() {
    setAutoRequestFocus(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 402, 473);
    contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);
contentPane.setLayout(null);

JLabel label = new JLabel("");

label.setIcon(new

ImageIcon(main.class.getResource("/view/cora\u00E7\u00E3o.gif")));

label.setBounds(275, 299, 101, 107);

contentPane.add(label);
JLabel lblGostosasPlay =

DefaultComponentFactory.getInstance().createTitle(GOSTOSAS PLAY);

lblGostosasPlay.setForeground(new Color(255, 0, 255));

lblGostosasPlay.setFont(new Font(Arial Black, Font.BOLD, 33));

lblGostosasPlay.setBounds(26, 11, 338, 37);

contentPane.add(lblGostosasPlay);
JButton btnMenu = new JButton(" MENU");

btnMenu.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {
}
});

btnMenu.setBackground(new Color(224, 255, 255));

btnMenu.setFont(new Font(Tahoma, Font.PLAIN, 14));

btnMenu.setForeground(Color.MAGENTA);

btnMenu.setBounds(275, 201, 89, 23);

contentPane.add(btnMenu);
JButton btnOpes = new JButton(OP\u00C7\u00D5ES);

btnOpes.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {
}
});

btnOpes.setBackground(new Color(224, 255, 255));

btnOpes.setFont(new Font(Tahoma, Font.PLAIN, 14));

btnOpes.setForeground(Color.MAGENTA);

btnOpes.setBounds(275, 258, 89, 23);

contentPane.add(btnOpes);
JButton btnPlay = new JButton(" PLAY");

btnPlay.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
}
});

btnPlay.setBackground(new Color(224, 255, 255));

btnPlay.setFont(new Font(Tahoma, Font.PLAIN, 14));

btnPlay.setForeground(Color.MAGENTA);

btnPlay.setBounds(275, 147, 89, 23);

contentPane.add(btnPlay);
JLabel lblNewLabel = new JLabel("");

lblNewLabel.setBackground(new Color(224, 255, 255));

lblNewLabel.setFont(new Font(Tahoma, Font.PLAIN, 14));

lblNewLabel.setForeground(Color.MAGENTA);

lblNewLabel.setIcon(new

ImageIcon(main.class.getResource("/view/gostosa.png")));

lblNewLabel.setBounds(0, 0, 376, 424);

contentPane.add(lblNewLabel);

}

}

esta classe vai ser responsável para chamar a segunda jframe da classe login.java
E

e esta e a segunda jframe classe login.java:

package view;

import javax.swing.JPanel;

import javax.swing.JLabel;

import javax.swing.ImageIcon;

import javax.swing.JProgressBar;

import java.awt.Color;

public class login extends JPanel {

/**
  • Create the panel.
    */
    public login() {
    setLayout(null);
    JProgressBar progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);
    progressBar.setStringPainted(true);
    progressBar.setForeground(Color.GREEN);
    progressBar.setBackground(Color.WHITE);
    progressBar.setBounds(0, 392, 248, 24);
    add(progressBar);
    JLabel label = new JLabel("");
    label.setIcon(new
    ImageIcon(login.class.getResource("/view/Linda.png")));
    label.setBounds(0, 0, 340, 427);
    add(label);
    }
    }
    nela tem um splash screen(carregamento).
R

Cara, o que ta acontecendo? Tá dando erro? Tá o que?

E

e o seguinte,nesta parte do ActionListener não sei o que fazer,não sei que comando dar para o JButton PLAY acionar a classe login.

R

Faz isso:

btnMenu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
login lg = new login();
login.setVisible(true);
dispose();
}
});
E

fiz e não funcionou,aproposito como colocar um som no botão?

R

Vc usa alguma IDE? Não é tão complicado chamar outra tela.

Som

E

cara e porque me identifico mais com o programa Java Eclipse,o que seria IDE?acho que no caso do Java Eclipse para acionar um áudio precisa-si criar uma classe e um pacote certo.

D

Acho que vcs se confundiram:

  • tem o JFrame main
  • tem o JPanel login

Vc gostaria que do main abrisse o login através do botão play, nesse caso:

JDialog dialogLogin = new JDialog(); // instancia
dialogLogin.setContentPane(new login()); // atribui o JPanel login
dialogLogin.setModal(true); // bloqueia as outras janelas (opcional)
dialogLogin.pack(); // corrige o tamanho da janela (recomendável / opcional)
dialogLogin.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); // desejável para os dialogs
dialogLogin.setVisible(true); // exibe

pode usar JFrame em vez do JDialog

JFrame frameLogin = new JFrame(); // instancia
frameLogin.setContentPane(new login()); // atribui o JPanel login
// frameLogin.setModal(true); // JFrame não possui esta função
frameLogin.pack(); // corrige o tamanho da janela (recomendável / opcional)
frameLogin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // desejável para os JFrames
frameLogin.setVisible(true); // exibe
E

cara eu gostei deste método mas não chamou a jframe login,gostaria de saber como fazer a barra de login do meu segundo jframe login carregar junto com a numeração até atingir 100%

D

Procure em sites de buscas “splash screen java”, vai encontrar varias formas de fazer isso:

https://docs.oracle.com/javase/tutorial/uiswing/misc/splashscreen.html

public void actionPerformed(ActionEvent arg0) {

    login loginPanel = new login();
    JDialog dialogLogin = new JDialog(); // instancia
    dialogLogin.setContentPane(loginPanel); // atribui o JPanel login
    dialogLogin.setModal(false); // desbloqueia as outras janelas, necessário, senão vai travar
    dialogLogin.pack(); // corrige o tamanho da janela (recomendável / opcional)
    dialogLogin.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); // desejável para os dialogs
    dialogLogin.setVisible(true); // exibe

    for(int i=0; i<100; i++) {
        loginPanel.atualizarBarra(i); // atualiza a barra ou porcentagem
        try {
            Thread.sleep(90); // aguarda 90 milisegundos
        }
        catch(InterruptedException e) {
        }
    }
    dialogLogin.dispose(); // fechar a janela, não sei se é necessario
    }
E

muito muito bom mesmo,agora e o seguinte cara,a minha primeira jframe aparece a imagem normal quando aperto run,mas quando vou apertar run na jpainel( segunda jframe) a imagem e a mesma da primeira jframe,o que fazer para que apareça a imagem normal da segunda jframe?

D

Se na primeira funciona, então fazendo igual na segunda irá funcionar também

E

só pra tirar dúvidas existe um programa mais fácil e mais eficiente que o java eclipse?

D

Tem o NetBeans que é muito parecido com o Eclipse, prefiro o Eclipse por ser mais leve e mais rápido.
Tem o intellij, é bom mas muito lento.
Tem também o BlueJ, mas uso este somente para projetos pequenos, pois é o mais leve.

Para fazer a parte visual da aplicação, o NetBeans vem com editor de design, sei que existe um plugin para o Eclipse mas nunca usei.

O Intellij tem varias ferramentas que ajudam no código, mas por ser muito lento, nunca fiz um projeto.

O BlueJ é melhor para quem está começando estudar a linguagem, permite executar um método do projeto sem a necessidade de compilar todo o projeto, bom para fazer testes.

Atualmente não estou programando em Java, mas eu usava mais o Eclipse e BlueJ.

E

o que são classes e os pacotes?para que servem?
o que é git? eo que e XML?

E

estive dando mais uma olhada na minha segunda jframe login.java e resolve colocar o console executei o programa e apareceu a mensagem:

Erro: o método main não foi encontrado na classe view.login; defina o método main como:
public static void main(String[] args)
ou uma classe de aplicativo JavaFX deve expandir javafx.application.Application

como criar isto?

D

basta definir "o método main como: public static void main(String[] args)" na classe view.login

E

para que serve o console no java eclipse?

E

foi apertar run em minha jframe main e apareceu a mensagem abaixo usando o console:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
ele indica que o problema e o public static void main(String[] args) { o que fazer?

Criado 25 de maio de 2018
Ultima resposta 5 de jun. de 2018
Respostas 25
Participantes 3