이것은 멍청한 질문입니다. 우리는 수업에서 애플릿을 배우고 있으며, 나는 혼자서 뭔가를 시도하고있었습니다.패널에 그릴 paintComponent 오버라이드
다음은 지금까지 내가,의 paintComponent()를 명시 적으로 호출 할 필요는 이해 코드
import java.awt.*;
import javax.swing.*;
class controls extends JPanel{
@Override public void paintComponent(Graphics g) {
g.drawOval(50, 50, 50, 50); // <-- draws an oval on the panel
}
}
public class test extends JApplet{
public void init(){
final JPanel stage = new JPanel();
final JPanel controlPanel = new controls();
final JPanel banner = new JPanel();
final JLabel name = new JLabel("Test", JLabel.CENTER);
this.setLayout(new BorderLayout());
banner.setBackground(Color.CYAN);
banner.add(name);
this.add(controlPanel, BorderLayout.WEST);
this.add(banner, BorderLayout.NORTH);
}
}
입니다. 컨트롤 클래스는 단독으로 사용하면 잘 작동합니다.
다음과 같은 코드가 작동한다는 의미입니다.
public class test extends JApplet{
public void init(){
JPanel controlPanel = new controls();
this.add(controlPanel);
}
}
차이점을 이해할 수 없습니다. 이 경우 동일한 코드가 작동하는 이유는 무엇입니까?
감사합니다.
잘 모르겠습니다. 어떤 코드가 작동하고 어떤 코드는 작동하지 않습니까? 작동하지 않는 코드를 실행하면 어떻게됩니까? –
@MichaelMyers : 레이아웃이없는 코드가 작동합니다. 레이아웃이있는 패널은 배너 패널을 표시하지만 테스트 클래스에서 만든 객체가있는 컨트롤 패널은 표시하지 않습니다. – psyc0der