Pessoal,
Sou inciante em Java e estou com um problema para ser resolvido. Eu tenho uma imagem, que quero colocar como imagem de fundo em um JFrame, e adicionar componentes, como butões, JTextField, e outros mais. Eu fiz esse código abaixo, mais eu só consigo ver a imagem quando executo, portanto não posso manipulalá. Fico grato quem me responder.
Image image = null;
try {
// Read from a file
File file = new File(“marca_aprovada.jpg”);
image = ImageIO.read(file);
}
catch(Exception exp1){
}
// Use a label to display the image
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
Como assim manipula-la?
Tambem tem essa maneira de incluir uma figura de fundo…
package panel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyPanel extends JPanel {
private Image image;
public MyPanel() {
this.initialize();
}
protected void initialize() {
this.image = this.getImage("background.gif");
this.setLayout(new BorderLayout());
}
public Image getImage(String path) {
URL imageURL = getClass().getResource(path);
if (imageURL == null)
return null;
return new ImageIcon(imageURL).getImage();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Dimension dDesktop = this.getSize();
double width = dDesktop.getWidth();
double height = dDesktop.getHeight();
Image background = new ImageIcon(this.image.getScaledInstance(
(int) width, (int) height, 1)).getImage();
g.drawImage(background, 0, 0, this);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new MyPanel());
frame.setSize(400, 300);
frame.setVisible(true);
}
}
O quê vc quer dizer com manipulá-la?
Se vc quer gerar um preview por exemplo é só extender JComponent e brincar um pouco, mas seja mais claro.
Ah, outra forma de deixar uma imagem de fundo é adicioná-la ao DesktopPane e depois ao JFrame:
desktop = new JDesktopPane(){
Image im = (new ImageIcon("suaImagem.jpg")).getImage();
public void paintComponent(Graphics g){
g.drawImage(im,0,0,this); }
};
Olá Pessoal,
A manipulação que eu falo é a seguinte: Quero abrir no eclipse no forma Form Edit, visualizar a figura que eu inseri e depois add um butão, um JTextField. Pois da forma que eu fiz, eu só consigo visualizar a imagem quando eu executo, portanto não tenho como inserir os componentes nos seus devidos lugares.
Pessol,
Obrigado pelas sugestões, mais achei a forma correta e simples. Você cria um JFrame e add um JLabel e quando vc add tem os campos lá de vc identificar o ID do JLabel, O texto que vc quer escrever e tem um campo que vc add a imagem direto. Vc importa a imagem para o projeto e insere. Pronto, vc aumenta o JLabel e deixa do tamanho desejado.
1 curtida
Estou com a mesma dúvida, inserir uma imagem de fundo, como uma foto por exemplo em um sistema que eu tô criando pra mim, só pra conhecimento.
BahiaTiago você poderia ser um pouco mais claro, sobre como você fez, já mexi um bocado e não consigo…Ja fui em vincular -> background…
Ou se possível alguém poderia esclarecer…Agradeço.
Ah não precisa, já descobri. Obg