package Modelo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Login extends JFrame{
JFrame Logo = new JFrame(); // Referente a tela do login.
JLabel im= new JLabel(new ImageIcon ("src/Modelo/im.jpg"));// Referente a imagem de fundo.
//Aqui é referente aos campos de usuario e senha.
JTextField usuario = new JTextField();
JTextField senha = new JTextField();
// Aqui é referente aos rotulos de usario e senha.
JLabel rotulo1 =new JLabel("Usuario");
JLabel rotulo2 = new JLabel("Senha");
// Referente aos botões de entra e cancela.
JButton entra = new JButton();
JButton cancela = new JButton();
//Esse metodo é referente a exibição da tela do login, por ele que chamamos no main
public Login(){
// Referente as propriedades da tela.
Logo.setLayout(null);
Logo.setLocationRelativeTo( null );//para centralizar no meio da tela.
Logo.setUndecorated(true);
Logo.setSize(330,70);
//Container c = Logo.getContentPane();
//c.setLayout(null);
//c.setBackground(Color.green);
//Referente as propriedade de add.
Logo.getContentPane().add(im);
Logo.add(rotulo1);
Logo.add(rotulo2);
Logo.add(usuario);
Logo.add(senha);
Logo.add(entra);
Logo.add(cancela);
// Referente a imagem de fundo da tela do logo.
im.setVisible(true);
im.setSize(330,70);
im.setLocation(0,0);
im.setBackground();
// Referente as posição e tamanhos.
rotulo1.setVisible(true);
rotulo1.setSize(80,20);
rotulo1.setLocation(10,10);
rotulo2.setVisible(true);
rotulo2.setSize(80,20);
rotulo2.setLocation(10,40);
usuario.setVisible(true);
usuario.setSize(150,20);
usuario.setLocation(70,10);
senha.setVisible(true);
senha.setSize(150,20);
senha.setLocation(70,40);
entra.setVisible(true);
entra.setSize(70,20);
entra.setLocation(250,10);
cancela.setVisible(true);
cancela.setSize(70,20);
cancela.setLocation(250,40);
//Referente a visibilidade da tela do logo,
// Obs. a visibilidade deve ficar sempre no fim da tela.
Logo.setVisible(true);
Logo.setDefaultCloseOperation(EXIT_ON_CLOSE);
entra.addActionListener(new VerificaLogo()); // aqui vc add o actionlistener.
}
class VerificaLogo implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()== entra){
String a = new String();
}
}
}
}
Fundo JLabel
4 Respostas
Opa, beleza.
Você deve dar uma estudada sobre os LAYOUTS em java.
Não testei seu código, mas pelo que li, você colocou seu frame Logo com layout NULL e adicionou os componentes.
Tente colocar um layout, tipo o GridLayout, deve aparecer os componentes.
Existem mais tipos de layouts, eu pessoalmente utilizo muito o GridBagLayout, é um dos mais complexos, mas nada impossível de aprender.
Logo.setLayout( new GridLayout(2,2) ); // cria um grid com 2 linhas e 2 colunas
O problema todo é q eu sempre fiz com o layout null e eu ja tinha feito uma vez um programa com um jlabel de fundo e funcionou.
So não sei pq agora esse não esta funcionando…
Eu também estou habituado a desenvolver GUI’s sem LayoutManager e já tive um problema similar. Trata-se de um problema de Thread que tem a ver com a maneira como a aplicação está programada, não implicando erros de sintaxe.
Eu faria algumas alterações no teu código sem mudar significativamente a sua estrutura:
public Login(){
super("Login");
setLayout(null);
setLocationRelativeTo(null);
setUndecorated(true);
setSize(330,70);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Outra coisa, só necessidas do método setVisible(true) na janela, os outros componentes são visíveis por defeito.
Depois declaras e inicias todos os outros componentes FORA DO CONSTRUTOR e antes do main();
//Exemplo de main()
public static void main(String args[]) {
JFrame login = new Login();
rotulo1.setSize(80,20);
rotulo1.setLocation(10,10);
//etc etc..
Login.getContentPane().add(im);
Login.getContentPane().add(rotulo1);
Login.getContentPane().add(rotulo2);
Login.getContentPane().add(usuario);
Login.getContentPane().add(senha);
Login.getContentPane().add(entra);
Login.getContentPane().add(cancela);
//etc etc...
Nota: Deves sempre usar o getContentPane() antes de adicionares algum componente à janela.
Não sei se isso irá resolver o teu problema, aconselho-te a dares uma vista de olhos na programação de interfaces gráficas usando swing pois o teu código necessitaria de uma remodelação profunda para ficar de acordo com as normas de boa programação 
Espero ter sido útil 
Tentei fazer isso mas não deu certo.
mudei ate as posição do getcontentpane() mas não deu.
Não seria por ta usando imageIcon para colocar a figura?
e como eu faço para add figura sem imageicon.
se puderem me passar o codigo embutido nesse do JPanel.