Para carregar uma imagem no Java, um jeito simples é usar BufferedImage, que é uma classe que armazena a imagem e suas informações (pixels, tamanho, etc). Você pode modificar uma imagem carregada num BufferedImage aplicando algoritmos sobre os pixels dela.
Para exibiri uma imagem, você pode usar um JLabel do Swing, um Label no JavaFX ou desenhá-la diretamente sobre um canvas usando Java2D.
Para salvar uma imagem (possivelmente alterada), você pode usar ImageIo.write, que recebe um File com o caminho, um bufferedimage e o formato (jpeg, png, …).
Para copiar, você pode copiar diretamente pelo sistema operacional, ou basta usar o ImageIO.write para salvar com um nome diferente.
Não funcionou, ele só abre o JFrame e não exibe a imagem.
Eu acho que ele não consegue encontrar o arquivo, não sei se é realmente isso.
Eu salvei o arquivo dentro de um pacote no próprio projeto.
existem vários tipos de gerenciados de janela, mas eu recomento usar sem um pois da um maior controle, fazendo da seguinte forma criando um método construto e nele colocar toda as configurações da janela e os objetos da seguinte forma
public class TrabalhandoImagens extends JFrame implements ActionListener {
ImageIcon imagem = new ImageIcon(“caminho da imagem”);
JLabel imagelabel ;
public TrabalhandoImagens() {
setSize(largura_janela, altura_janela); //aqui se coloca a largura e a altura da janela
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("titulo janela"); //tituloo da janela
setLocation(100, 0); //a posição da janela no monitor
setLayout(null); //gerenciador de janela nesse caso vai usar nem um
setVisible(true); //deixa o Frame visível
imagelabel = new JLabel(); //inicia o objeto
getContentPane().add(imagelabel); //adiciona o objeto no painel
imagelabel.setBounds(100, 100, 200, 200); //posiciona o objeto os dois primeiros valores são a posição X e Y no Frame e depois a largura e altura do objeto
imagelabel.setIcon(imagem);//muda o icone
}
public static void main(String[] args) {
JFrame janela = new TrabalhandoImagens();
}
cara so usa .add(imagelabel); se vc estiver usando um painel como nesse caso vc esta usando nem um painel recomento usar getContentPane().add(imagelabel);
desculpa @samlis acho que agora entendi vc quer mover a imagem com o mouse é isso ?
Por exemplo, eu quero colocar a imagem no canto superior direito que seria o ponto (0,0) no Frame. A questão de usar o mouse ou o teclado não tem muito importância, pq eu só quero por enquanto mover a imagem de lugar mesmo, sobre eventos de mouse ou teclado eu já tenho um pouco de noção
É mai ou menos isso aqui, mover a imagem ali pro outro espaço vazio:
vc pode chamar esse método qual sua imagem for clicada, ele pega a posição X e Y do seu curso do mouse adiciona a posição da imagem meno o seu tamanho dividido por dois
Não, você pode alterar de acordo com qualquer parâmetro que quiser (ex: de x em x segundos, ou quando um determinado estado interno do seu programa mudar).
O método setLocation(), por exemplo, precisa de 2 parâmetros: posição X e posição Y. Pra ele, não importa de onde vieram esses valores (do mouse, teclado, rede, temperatura do processador, um timer, distância da Terra até a Lua…). O setIcon() precisa de um ImageIcon, mas de onde vem esse ImageIcon não importa para ele. Isso é uma das mágicas do encapsulamento .
Dica: se quer criar um jogo razoavelmente dinâmico, os componentes Swing não são adequados. Geralmente, em jogos, se desenha diretamente sobre um canvas (ex: sobrescrevendo o método paintComponent de um JPanel). Você estará melhor servido usando uma biblioteca/engine como a LibGdx, mas não recomendo até você estar mais confortável com Java.