다른 클래스의 레이블을 표시하려고합니다. 그러나 프레임에 추가하면 표시되지 않습니다. 나는 프레임 워크를 통과함으로써 카운터 클래스 자체에서 드로잉을 시도했다. 프레임 워크는 좋은 연습이 아니라고 가정한다 (실제로 작동하지 않는다는 사실을 무시하고). 뿐만 아니라 아래 코드에 무엇입니까. 아무도 나를 도울 수 없으며 내 솔루션이 생성 된 레이블을 표시하지 않는 이유를 설명 할 수 있습니까? 당신은 내가 JPanel을 사용하는 것에 대해 매우 새로운 것이라고 말할 수있을 것입니다.다른 클래스의 JLabel이 그려지지 않습니다.
CookieChaser Class
public class CookieChaser extends JPanel {
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Cookie Chaser");
CookieChaser game = new CookieChaser();
frame.add(game);
frame.setSize(1000, 1000);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
counter Score = new counter(frame);
cookie Cookie = new cookie();
JLabel item = counter.getLabel();
frame.add(item);
frame.setVisible(true);
while (true) {
game.repaint();
Thread.sleep(10);
}
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
}
}
카운터 클래스
public class counter {
int count;
static JLabel text;
public counter(JFrame frame){
count = 0;
text = new JLabel(String.valueOf(count));
text.setLocation(0,0);
text.setSize(50,50);
}
public static JLabel getLabel(){
return text;
}
1) JLabel을 컨테이너에 추가해야합니다. 2) 페인트 방법으로 페인트 칠하지 않습니다. 3) paint 메소드는 대신 paintComponent 여야합니다. –