Graph
JFrame
에 개체가 추가됩니다. 이 객체는 그래프 플롯이 뒤 따르는 축을 그립니다.paint()가 직접 호출 될 때 요소가 그리지 않지만 내용 창에 추가 될 때 그리기 요소
this.getContentPane().add(new Graph());
축 및 기능 무승부 모두 : 객체의 paint()
을 사용하여 JFrame
을 통해 암시 적으로 호출됩니다. 그러나 함수가,
Graph g = new Graph();
g.paint(this.getContentPane().getGraphics());
축이 그리하지 않습니다 그러나, paint()
방법은 명시 적으로 통해 호출 될 때. 다음과 같이 객체 Graph
에서
public GraphFrame() {
super("");
setSize(800, 800);
setVisible(true);
//One of the above blocks is called here
}
기능 paint
은 다음과 같습니다 다음 JFrame
의 전체 생성자는 다음과 같다 구성 요소가 칠 때 암시 적으로 호출 할 때
public void paint(Graphics w) {
w.setColor(Color.WHITE);
w.fillRect(0, 0, 800, 800); //Clears the screen
w.setColor(Color.BLACK);
w.drawLine(100, 0, 100, 800);
w.drawLine(0, 700, 800, 700); //(Should) Draw the axes
for(int i = 1; i < 650; i++) {
//Draws the function
//This is just a repeated drawLine call.
}
}
왜 축이 그리는 것이지만, 때 그리지 명시 적으로 호출 되었습니까? 이 함수는 (
for
루프의 블록)을 그립니다. 반면에 for 루프 앞에있는 축은 그렇지 않습니다.
왜 전화하는 '페인트 (...)'직접? 이 작업은 가장 흔한 일이며 그래픽 자습서의 대부분의 권장 사항을 무시하고 수행하려는 작업에 비추어 볼 때 약간의 의미가 있습니다. Swing 그래픽 튜토리얼을 읽었습니까? 그렇지 않다면, 그들은 당신에게 제공해야 할 것이 많기 때문에 정말로해야합니다. –