package ch14;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Ch1402Panel extends JPanel
{
public Ch1402Panel()
{
// TODO 자동 생성된 생성자 스텁
super();
setVisible(true);
}
@Override
protected void paintComponent(Graphics g) {
// TODO 자동 생성된 메소드 스텁
//부모에 있는 코딩도 돌리고 자신도 돌린다..
super.paintComponent(g);
g.drawRect(50, 50, 150, 100);
}
}
******* Ch1401_AWT.java *******
package ch14;
import java.awt.Frame;
import java.awt.Graphics;
public class Ch1401_AWT extends Frame {
private static final long serialVersionUID = 1L;
//오버라이드..
@Override
public void paint(Graphics g) {
// TODO 자동 생성된 메소드 스텁
super.paint(g);
g.drawRect(50,50,50,100);
}
/**
* This is the default constructor
*/
public Ch1401_AWT() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setTitle("Frame");
}
}
********* Ch1402_Swing.java ********
package ch14;
import java.awt.BorderLayout;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class Ch1402_Swing extends JFrame {
private static final long serialVersionUID = 1L;
private Ch1402Panel jContentPane = null;
//컴포넌트위에 강제로 덮어씀. 될수있음 swing은 paint로 override하지 않음.
@Override
public void paint(Graphics g) {
// TODO 자동 생성된 메소드 스텁
super.paint(g);
g.drawRect(50, 50, 100, 50);
}
/**
* This is the default constructor
*/
public Ch1402_Swing() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private Ch1402Panel getJContentPane() {
if (jContentPane == null) {
jContentPane = new Ch1402Panel();
jContentPane.setLayout(new BorderLayout());
}
return jContentPane;
}
}