Fórum Selecionar imagem JLabel #475896

10/04/2014

0

Ola,
Estou em busca de como fazer o tracejado que editores de imagens fazem na seleção para corte.
estou usando usando imagens carregadas e JLabel selecionando com as propriedades de MousePressed e MouseReleased.(códigos abaixo)
estou cortando a imagem selecionada através de um botão cortar (códigos abaixo).
embora os códigos estejam funcionando sem problemas, gostaria de marcar um tracejado na area a ser cortada,

alguém tem alguma ideia de como fazer?

*****************************Códigos mencionados**********************************

private void jLabel1MousePressed(java.awt.event.MouseEvent evt) {
this.x1 = evt.getX();
this.y1 = evt.getY();
}

private void jLabel1MouseReleased(java.awt.event.MouseEvent evt) {
this.x2 = evt.getX();
this.y2 = evt.getY();
}

private void mnucortarActionPerformed(java.awt.event.ActionEvent evt) {

if((x1<x2) && (y1<y2)) {
imagem1= imagem1.getSubimage(x1, y1, x2-x1, y2-y1);
}
if((x1>x2) && (y1<y2)) {
imagem1= imagem1.getSubimage(x2, y1, x1-x2, y2-y1);
}
if((x1<x2) && (y1>y2)) {
imagem1= imagem1.getSubimage(x1, y2, x2-x1, y1-y2);
}
if((x1>x2) && (y1>y2)) {
imagem1= imagem1.getSubimage(x2, y2, x1-x2, y1-x2);
}


ImageIcon icon = new ImageIcon(imagem1);
jLabel1.setIcon(icon);
setSize(imagem1.getWidth() +25,imagem1.getHeight()+70);
}
Lucas Firak

Lucas Firak

Responder

Posts

10/04/2014

Carlos Proença

Fala Lucas blz?

cara seguinte da forma que voce esta seguindo... vai da um pouco de trabalho mas.... a solução pra essa parte grafica.. é vc usar Canvas... para desenhar a linha.... dai voce pode extender o JLabel e criar um seu com essa funcionalidade.....

ou cria um "componente Swing" pra isso e kkkk deposi disponibiliza pro pessoal o seu new componente

att.
Responder

Gostei + 0

10/04/2014

Lucas Firak

Fala Lucas blz?

cara seguinte da forma que voce esta seguindo... vai da um pouco de trabalho mas.... a solução pra essa parte grafica.. é vc usar Canvas... para desenhar a linha.... dai voce pode extender o JLabel e criar um seu com essa funcionalidade.....

ou cria um "componente Swing" pra isso e kkkk deposi disponibiliza pro pessoal o seu new componente

att.


Valeu Carlos!!
deu quase certo...ainda falta umas adaptações que estou buscando como faço... meu problema agora é que os itens de menu estão ficando por baixo do quadrado criado...mas segue o código:

class Quadrado extends Canvas { // so para uzar o nome de Quadrado :p

public Quadrado () {
setBackground (Color.BLUE);
}
}

//declarei um Quadrado q; como global

private void jLabel1MousePressed(java.awt.event.MouseEvent evt) {
q.setVisible(false); // para fazer um unico quadrado sempre e nao lotar a tela de quadrados
this.x1 = evt.getX();
this.y1 = evt.getY();
}

private void jLabel1MouseReleased(java.awt.event.MouseEvent evt) {
this.x2 = evt.getX();
this.y2 = evt.getY();
q = new Quadrado();
q.setLocation(x1, y1);
if((x1<x2) && (y1<y2)) {
q.setSize(x2-x1, y2-y1);
}
if((x1>x2) && (y1<y2)) {
q.setSize(x1-x2, y2-y1);
}
if((x1<x2) && (y1>y2)) {
q.setSize(x2-x1, y1-y2);
}
if((x1>x2) && (y1>y2)) {
q.setSize(x1-x2, y1-y2);
}
jLabel1.add(q);
}
Responder

Gostei + 0

10/04/2014

Carlos Proença

hehehe mais ta... total no caminho.... e rssr essa parte de posicionamento é tensa msm... tem que ficar testando somando ateh ficar da forma certa.... e rssr o bom que voce aprendendo como mexer no canvas com java quando for ver em HTML5 vai ver que é tudo a msm coisa no fim... e vai tirar de letra

mas boa sorte ai com sua app se precisar de help é só chamar blz??

e depois compartilha com o pessoal sei que suas duvidas e contribuições vao salvar muito a pele de alguem um dia srrsrs

att.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar