eh o seguinte…
tenho o codigo:
/*
* NovoJPanel.java
*
* Created on 13 de Outubro de 2007, 00:35
*/
package exemplo;
import java.awt.*;
import java.net.URL;
import javax.swing.*;
/**
*
* @author Luiz
*/
public class NovoJPanel extends javax.swing.JPanel {
URL url = this.getClass().getResource("imagem/ja002.jpg");
Image imagem = Toolkit.getDefaultToolkit().createImage(url);
/** Creates new form NovoJPanel */
public NovoJPanel() {
initComponents();
}
protected void paintComponent(final Graphics g) {
super.paintComponent(g);
g.drawImage(imagem,10,10,300,200,null);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Código Gerado ">
private void initComponents() {
jButton1 = new javax.swing.JButton();
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
formComponentResized(evt);
}
});
jButton1.setText("repaint");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(41, 41, 41)
.addComponent(jButton1)
.addContainerGap(292, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(62, 62, 62)
.addComponent(jButton1)
.addContainerGap(109, Short.MAX_VALUE))
);
}// </editor-fold>
private void formComponentResized(java.awt.event.ComponentEvent evt) {
// TODO adicione seu código de manipulação aqui:
this.revalidate();
this.repaint();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO adicione seu código de manipulação aqui:
this.revalidate();
this.repaint();
}
// Declaração de variáveis - não modifique
private javax.swing.JButton jButton1;
// Fim da declaração de variáveis
}
esse ai em cima eh o JPanel que quero que fique com a imagem de fundo o codigo abaixo eh o JFrame que ira carregar o JPanel
/*
* NovoJFrame.java
*
* Created on 13 de Outubro de 2007, 00:17
*/
package exemplo;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;
import javax.swing.*;
/**
*
* @author Luiz
*/
public class NovoJFrame extends javax.swing.JFrame {
URL url = this.getClass().getResource("imagem/ja002.jpg");
Image imagem = Toolkit.getDefaultToolkit().createImage(url);
/** Creates new form NovoJFrame */
public NovoJFrame() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Código Gerado ">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("Sortear");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel1.setText("jLabel1");
jButton2.setText("Abrir Panel");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(171, 171, 171)
.addComponent(jLabel1))
.addGroup(layout.createSequentialGroup()
.addGap(156, 156, 156)
.addComponent(jButton1))
.addGroup(layout.createSequentialGroup()
.addGap(148, 148, 148)
.addComponent(jButton2)))
.addContainerGap(167, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(188, Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(25, 25, 25)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addGap(21, 21, 21))
);
pack();
}// </editor-fold>
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO adicione seu código de manipulação aqui:
NovoJPanel panel = new NovoJPanel();
this.setContentPane(panel);
panel.setVisible(true);
this.pack();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO adicione seu código de manipulação aqui:
LinhaExecucao linha = new LinhaExecucao(this);
linha.start();
}
public void mostrarNumeroSorteado(int numero) {
this.jLabel1.setText(""+numero);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NovoJFrame().setVisible(true);
}
});
}
// Declaração de variáveis - não modifique
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
// Fim da declaração de variáveis
}
pronto… o problema eh esse… a imagem nao aparece logo quando inicia o JPanel… soh consigo fazer a imagem aparecer quando modifico o tamanho a janela ou qualquer outra coisa do tipo… ah sim e tb quando clico no botao que tem no JPanel e ele chama o metodo repaint()…
como eh q se faz para a imagem ser carregada logo de inicio… jah tentei de tudo mas nao consigo, ateh umas engareia de tornar o Frame invisivel e torna-lo visivel quando carregar o JPanel eu jah fiz mas a imagem nao aparece…