[quote="simu"]
Não encontrei onde tem o panel SUL que voce mencionou, mas acho que o erro é no método getJContentPane. Voce está adicionando dois componentes como CENTER, só vai ficar o último; e voce não está chamando o método getJPanelCentro() que é responsável em criar o componente.
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanel(), BorderLayout.SUL); // mudei essa linha, assumindo que é o SUL que mencionou
jContentPane.add(getJPanelCentro(), BorderLayout.CENTER); // mudei essa linha
}
return jContentPane;
}
[]]
Em me enganei, é um panel NORTE que eu coloquei um label com um texto e no CENTRO que eu quero colocar a imagem. Eu fiz o que o staroski falou pra corrigir e no bloco de código do contentPane eu coloquei do jeito que você falou mas ainda deu erro. Agora que eu estou entendendo melhor aqui, nessa linha:
jContentPane.add(getJPanel(), BorderLayout.CENTER);
É o panel principal que eu coloquei no centro. E nesse panel eu coloquei um no NORTE e outro no CENTRO.
Esse aqui é o método do panel principal que está adicionado o norte e centro que estão declarados em outro lugar:
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(new BorderLayout());
jPanel.setBackground(Color.white);
jPanel.add(getJPanelNorte(), BorderLayout.NORTH);
jPanel.add(getJPanelCentro(), BorderLayout.CENTER);
}
return jPanel;
}
Então naquela ContentPane acho que tem que colocar apenas este panel aqui não é? Lá eu não posso passar a linha do norte e centro pois essas eu acho que tem que passar é aqui nesse código do panel principal. Não sei se eu estou confundindo mas eu acho que é isso.
Acho que o erro deve ser lá no método do panel CENTRO. O caminho da imagem eu coloquei certo e já passei a imagem como parâmetro do label. Não sei o que falta então.
E aí alguém pode me dar uma luz? A imagem não aparece mesmo no panel.
21/10/2009
Carlos Heuberger
[quote="Sidplay"]E aí alguém pode me dar uma luz? A imagem não aparece mesmo no panel.
Tá muito confuso isso... não tem como simplificar um pouco...
pelo menos só vendo uns métodos espalhados fica difícil analisar.
Se estiver usando um Layout no getJPanelCentro(), como o [b]staroski[/b] sugeriu, então outro problema pode ser que a imagem não está sendo encontrada.
[]]
[quote="simu"][quote="Sidplay"]E aí alguém pode me dar uma luz? A imagem não aparece mesmo no panel.
Tá muito confuso isso... não tem como simplificar um pouco...
pelo menos só vendo uns métodos espalhados fica difícil analisar.
Se estiver usando um Layout no getJPanelCentro(), como o [b]staroski[/b] sugeriu, então outro problema pode ser que a imagem não está sendo encontrada.
[]]
simu, vou postar aqui o código da classe inteira pra você ver. A classe é pequena.
package principal;
import fornecedor.CadastroFornecedor;
import funcionario.CadastroFuncionario;
import historico.CadastroHistorico;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import java.awt.GridBagConstraints;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import cliente.CadastroCliente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import lancamento.CadastroLancamento;
import javax.swing.ImageIcon;
import java.awt.Color;
import javax.swing.JLabel;
import java.awt.SystemColor;
public class Menu extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel jPanel = null;
private JMenuBar jJMenuBar = null;
private JMenu jMenuClientes = null;
private JMenuItem jMenuItemCadastrarClientes = null;
private JMenuItem jMenuItemHistorico = null;
private JMenu jMenuFornecedores = null;
private JMenuItem jMenuItemCadastroFornecedores = null;
private JMenu jMenuFuncionarios = null;
private JMenuItem jMenuItemCadastroFuncionarios = null;
private JMenu jMenuLancamentos = null;
private JMenuItem jMenuItemCadastroLancamentos = null;
private JMenu jMenuSair = null;
private JMenuItem jMenuItemSair = null;
private JPanel jPanelNorte = null;
private JPanel jPanelCentro = null;
private JLabel jLabelCRC = null;
/**
* This is the default constructor
*/
public Menu() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(636, 359);
this.setJMenuBar(getJJMenuBar());
this.setContentPane(getJContentPane());
this.setTitle("Controle de Recebimento de Contas - Stelzer Consultoria");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanel(), BorderLayout.CENTER);
}
return jContentPane;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(new BorderLayout());
jPanel.setBackground(Color.white);
jPanel.add(getJPanelNorte(), BorderLayout.NORTH);
jPanel.add(getJPanelCentro(), BorderLayout.CENTER);
}
return jPanel;
}
/**
* This method initializes jJMenuBar
*
* @return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.setPreferredSize(new Dimension(20, 20));
jJMenuBar.add(getJMenuClientes());
jJMenuBar.add(getJMenuFornecedores());
jJMenuBar.add(getJMenuFuncionarios());
jJMenuBar.add(getJMenuLancamentos());
jJMenuBar.add(getJMenuSair());
}
return jJMenuBar;
}
/**
* This method initializes jMenuClientes
*
* @return javax.swing.JMenu
*/
private JMenu getJMenuClientes() {
if (jMenuClientes == null) {
jMenuClientes = new JMenu();
jMenuClientes.setText("Clientes");
jMenuClientes.setMnemonic(KeyEvent.VK_C);
jMenuClientes.add(getJMenuItemCadastrarClientes());
jMenuClientes.addSeparator();
jMenuClientes.add(getJMenuItemHistorico());
}
return jMenuClientes;
}
/**
* This method initializes jMenuItemCadastrarClientes
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItemCadastrarClientes() {
if (jMenuItemCadastrarClientes == null) {
jMenuItemCadastrarClientes = new JMenuItem();
jMenuItemCadastrarClientes.setText("Cadastrar Clientes");
jMenuItemCadastrarClientes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroCliente cc = new CadastroCliente();
cc.setVisible(true);
}
});
}
return jMenuItemCadastrarClientes;
}
/**
* This method initializes jMenuItemHistorico
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItemHistorico() {
if (jMenuItemHistorico == null) {
jMenuItemHistorico = new JMenuItem();
jMenuItemHistorico.setText("Histórico de Clientes");
jMenuItemHistorico.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroHistorico ch = new CadastroHistorico();
ch.setVisible(true);
}
});
}
return jMenuItemHistorico;
}
/**
* This method initializes jMenuFornecedores
*
* @return javax.swing.JMenu
*/
private JMenu getJMenuFornecedores() {
if (jMenuFornecedores == null) {
jMenuFornecedores = new JMenu();
jMenuFornecedores.setText("Fornecedores");
jMenuFornecedores.setMnemonic(KeyEvent.VK_F);
jMenuFornecedores.add(getJMenuItemCadastroFornecedores());
}
return jMenuFornecedores;
}
/**
* This method initializes jMenuItemCadastroFornecedores
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItemCadastroFornecedores() {
if (jMenuItemCadastroFornecedores == null) {
jMenuItemCadastroFornecedores = new JMenuItem();
jMenuItemCadastroFornecedores.setText("Cadastrar Fornecedores");
jMenuItemCadastroFornecedores.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroFornecedor cf = new CadastroFornecedor();
cf.setVisible(true);
}
});
}
return jMenuItemCadastroFornecedores;
}
/**
* This method initializes jMenuFuncionarios
*
* @return javax.swing.JMenu
*/
private JMenu getJMenuFuncionarios() {
if (jMenuFuncionarios == null) {
jMenuFuncionarios = new JMenu();
jMenuFuncionarios.setText("Funcionários");
jMenuFuncionarios.setMnemonic(KeyEvent.VK_F);
jMenuFuncionarios.add(getJMenuItemCadastroFuncionarios());
}
return jMenuFuncionarios;
}
/**
* This method initializes jMenuItemCadastroFuncionarios
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItemCadastroFuncionarios() {
if (jMenuItemCadastroFuncionarios == null) {
jMenuItemCadastroFuncionarios = new JMenuItem();
jMenuItemCadastroFuncionarios.setText("Cadastrar Funcionários");
jMenuItemCadastroFuncionarios.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroFuncionario cfu = new CadastroFuncionario();
cfu.setVisible(true);
}
});
}
return jMenuItemCadastroFuncionarios;
}
/**
* This method initializes jMenuLancamentos
*
* @return javax.swing.JMenu
*/
private JMenu getJMenuLancamentos() {
if (jMenuLancamentos == null) {
jMenuLancamentos = new JMenu();
jMenuLancamentos.setText("Lançamentos");
jMenuLancamentos.setMnemonic(KeyEvent.VK_L);
jMenuLancamentos.add(getJMenuItemCadastroLancamentos());
}
return jMenuLancamentos;
}
/**
* This method initializes jMenuItemCadastroLancamentos
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItemCadastroLancamentos() {
if (jMenuItemCadastroLancamentos == null) {
jMenuItemCadastroLancamentos = new JMenuItem();
jMenuItemCadastroLancamentos.setText("Cadastrar Lançamentos");
jMenuItemCadastroLancamentos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroLancamento cl = new CadastroLancamento();
cl.setVisible(true);
}
});
}
return jMenuItemCadastroLancamentos;
}
/**
* This method initializes jMenuSair
*
* @return javax.swing.JMenu
*/
private JMenu getJMenuSair() {
if (jMenuSair == null) {
jMenuSair = new JMenu();
jMenuSair.setText("Sair");
jMenuSair.setMnemonic(KeyEvent.VK_S);
jMenuSair.add(getJMenuItemSair());
}
return jMenuSair;
}
/**
* This method initializes jMenuItemSair
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItemSair() {
if (jMenuItemSair == null) {
jMenuItemSair = new JMenuItem();
jMenuItemSair.setText("Sair do Sistema");
jMenuItemSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
return jMenuItemSair;
}
/**
* This method initializes jPanelNorte
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelNorte() {
if (jPanelNorte == null) {
jLabelCRC = new JLabel();
jLabelCRC.setText("CONTROLE DE RECEBIMENTO DE CONTAS - CRC");
jLabelCRC.setFont(new Font("Arial", Font.BOLD + Font.PLAIN, 20));
jLabelCRC.setBounds(new Rectangle(62, 19, 488, 16));
jPanelNorte = new JPanel();
jPanelNorte.setLayout(null);
jPanelNorte.setPreferredSize(new Dimension(50, 50));
jPanelNorte.add(jLabelCRC, null);
jPanelNorte.setBorder(BorderFactory.createLineBorder(SystemColor.controlDkShadow, 1));
}
return jPanelNorte;
}
/**
* This method initializes jPanelCentro
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelCentro() {
if (jPanelCentro == null) {
jPanelCentro = new JPanel();
jPanelCentro.setLayout(new BorderLayout());
ImageIcon img = new ImageIcon("../Imagem/logo.jpg");
JLabel labelImg = new JLabel(img);
jPanelCentro.add(labelImg, BorderLayout.CENTER);
}
return jPanelCentro;
}
}
Vou explicar certinho como funciona a classe. Eu criei um jPanel principal. E nesse panel eu coloquei mais dois panels, que um deles fica no norte com um titulo que eu coloquei e o outro eu coloquei no centro que é onde eu quero colocar a figura.
A imagem eu coloquei numa pasta mas tem várias pastas até chegar nela. Mas com esse código simplifica o caminho não é?
[b]"../Imagem/logo.jpg"[/b]
21/10/2009
Carlos Heuberger
aqui funciona perfeitamente.
Tem certeza que a imagem está nesse diretório?
Um diretório "Imagem" PARALELO ao diretório da execução? o do projeto no Eclipse?
Só para testar, inclui os println abaixo:
...
ImageIcon img = new ImageIcon("./Imagem/logo.jpg");
System.out.println(img.getIconWidth());
try {
System.out.println(new File("../Imagem/logo.jpg").getCanonicalPath());
} catch (IOException ex) {
ex.printStackTrace();
}
JLabel labelImg = new JLabel(img);
...
se o getIconWidth for -1 é sinal que a imagem não foi carregada.
O 2° println deve mostrar qual o caminho completo da imagem.
[]]
[quote="simu"]aqui funciona perfeitamente.
Tem certeza que a imagem está nesse diretório?
Um diretório "Imagem" PARALELO ao diretório da execução? o do projeto no Eclipse?
Só para testar, inclui os println abaixo:
...
ImageIcon img = new ImageIcon("./Imagem/logo.jpg");
System.out.println(img.getIconWidth());
try {
System.out.println(new File("../Imagem/logo.jpg").getCanonicalPath());
} catch (IOException ex) {
ex.printStackTrace();
}
JLabel labelImg = new JLabel(img);
...
se o getIconWidth for -1 é sinal que a imagem não foi carregada.
O 2° println deve mostrar qual o caminho completo da imagem.
[]]
simu, imprimiu o -1 e no segundo print imprimiu o endereço correto da imagem. Ae eu coloquei esse endereço correto e ainda não mostra a imagem.
O diretório Imagem não é paralelo ao diretório do projeto do Eclipse não. Fica numa pasta qualquer. O endereço mostrado eu coloquei assim, mas com barras duplas pois deixar com uma só dá erro.
[b]D:\\Unifil\\4º ano\\TCC\\CRC\\Imagem\\logo.jpg[/b]
21/10/2009
Carlos Heuberger
[quote="Sidplay"][quote="simu"]aqui funciona perfeitamente.
Tem certeza que a imagem está nesse diretório?
Um diretório "Imagem" PARALELO ao diretório da execução? o do projeto no Eclipse?
Só para testar, inclui os println abaixo:
...
ImageIcon img = new ImageIcon("./Imagem/logo.jpg");
System.out.println(img.getIconWidth());
try {
System.out.println(new File("../Imagem/logo.jpg").getCanonicalPath());
} catch (IOException ex) {
ex.printStackTrace();
}
JLabel labelImg = new JLabel(img);
...
se o getIconWidth for -1 é sinal que a imagem não foi carregada.
O 2° println deve mostrar qual o caminho completo da imagem.
[]]
simu, imprimiu o -1 e no segundo print imprimiu o endereço correto da imagem. Ae eu coloquei esse endereço correto e ainda não mostra a imagem.
O diretório Imagem não é paralelo ao diretório do projeto do Eclipse não. Fica numa pasta qualquer. O endereço mostrado eu coloquei assim, mas com barras duplas pois deixar com uma só dá erro.
[b]D:\\Unifil\\4º ano\\TCC\\CRC\\Imagem\\logo.jpg[/b]
ups, tem um erro meu nesse código, faltou o segundo ponto no ImageIcon (tive que tirar o ponto para acessar o diretório DENTRO do projeto):