에서 작동하지 않는 나는 JLabel의를 확장하는 클래스를 가지고 다음과 같이 내가이 같은 다른 클래스의 생성자에서 그릴 때이 paintPhotos.java자바의 drawImage 이벤트
package myApp;
import java.awt.*;
import javax.swing.*;
/**
*
* @author PAGOLINA
*/
public class paintPhotos extends javax.swing.JLabel {
public Image img; int w; int h;
public paintPhotos(Image img, int w, int h) {
this.img = img; this.w = w; this.h = h;
System.out.println("am paintclass");
}
@Override
public void paintComponent(Graphics p) {
System.out.println("am here");
super.paintComponent(p);
Graphics2D g2 = (Graphics2D) p;
p.drawImage(img, 0, 0, w, h, this);
}
}
이다가의 paintComponent를 사용하여 그리기 (AddScore.java).
public AddScore() {
initComponents();
setLocationRelativeTo(null);
removeNotify();
setUndecorated(true);
Image imag = new ImageIcon(this.getClass().getResource("img/top_bg.jpg")).getImage();
showPix1.setLayout(new BorderLayout());
showPix1.add(new paintPhotos(imag,40,40), BorderLayout.CENTER);
}
위의 작업을 올바르게 수행하고 지정된대로 이미지를 그립니다.
하지만 다른 클래스 (AddScore.java)의 actionperform 이벤트에서 이미지를 그릴 때.
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Image imag = new ImageIcon(this.getClass().getResource("img/top_bg.jpg")).getImage();
showPix1.setLayout(new BorderLayout());
showPix1.add(new paintPhotos(imag,20,20), BorderLayout.CENTER);
}
의 paintComponent가 작동되지 않는 위의 문이 작동하지 않았다, 는 내가 무슨 일을하고 있는가?
다른 사람이 나를 도와 줄 수 있습니까? 내 paintPhotos 클래스를 호출하는 모든 가능한 방법을 시도했지만 아직 작동하지 않습니다.이 코드의 문제점은 무엇입니까?
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Image imag = new ImageIcon(this.getClass().getResource("img/top_bg.jpg")).getImage();
showPix1.setLayout(new BorderLayout());
showPix1.add(new paintPhotos(imag,20,20), BorderLayout.CENTER);
}
1) * "나는 JLabel의를 확장하는 클래스를 그립니다 그것에 paintComponent를 사용하여 "* 왜? 'BufferedImage'를 그린 다음 [여기]와 같이 레이블에 표시하십시오 (http://stackoverflow.com/questions/12208574/using-addmouselistener-and-paintcomponent-for-jpanel/12216139#12216139). 2) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –
자바 명명 규칙을 배우고 준수하십시오. – kleopatra
이미 구성 요소를 GUI에 추가했습니다. 'actionPerformed()'메소드에서 필요한 것은'PaintPhotos' 클래스의 이미지를 갱신하고'repaint()'를 호출하는 것입니다. –