先贴一段程序:import java.awt.*;
import javax.swing.*;
public class JpanelTest extends JFrame{ /**
* @param args
*/
JFrame frame;
public JpanelTest(){
frame=new JFrame();
frame.setSize(200,200);
setSize(500,500);
setVisible(true);
frame.setVisible(true);
}
public void paint(Graphics g){
//frame.paint(g);
super.paint(g);
g.drawOval(30,30,60,60);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JpanelTest panel=new JpanelTest();
}}这样的结果是会出现两个窗口,而图象是画在后面一个窗口上。
请问高手怎么能把图画在frame这个窗口中?
还有在整个过程中paint()方法是怎么开始执行的?没发现有什么方法或者类调用他。高手帮忙解释一下,谢谢~
import javax.swing.*;
public class JpanelTest extends JFrame{ /**
* @param args
*/
JFrame frame;
public JpanelTest(){
frame=new JFrame();
frame.setSize(200,200);
setSize(500,500);
setVisible(true);
frame.setVisible(true);
}
public void paint(Graphics g){
//frame.paint(g);
super.paint(g);
g.drawOval(30,30,60,60);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JpanelTest panel=new JpanelTest();
}}这样的结果是会出现两个窗口,而图象是画在后面一个窗口上。
请问高手怎么能把图画在frame这个窗口中?
还有在整个过程中paint()方法是怎么开始执行的?没发现有什么方法或者类调用他。高手帮忙解释一下,谢谢~
import javax.swing.*;
public class Testa{ /**
* @param args
*/
JFrame frame;
public Testa(){
frame=new JFrame();
frame.setSize(200,200);
frame.setVisible(true);
}
public void paint(Graphics g){
frame.paint(g);
g.drawOval(30,30,60,60);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Testa panel=new Testa();
}}
如果改成这样frame里也画不出来图象
import javax.swing.*;public class JpanelTest extends JFrame {
public JpanelTest(){
super();
setContentPane(new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(30,30,60,60);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JpanelTest panel=new JpanelTest();
panel.setSize(500, 500);
panel.setVisible(true);
}}