import java.awt.*;
import javax.swing.*;
public class HelloPanel extends JFrame {

    
public static void main(String[] args){
MyFrame f=new MyFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.show(); }}class MyFrame extends JFrame{
MyFrame(){

setSize(900,600);
setTitle("Title");
MyPanel m=new MyPanel();
Container j=getContentPane();
j.add(m);

}
}
class MyPanel extends JPanel{
public void  paintConponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello Panel", 100, 100);

}
}

解决方案 »

  1.   

    你的panel没有设置大小啊?也就是说你的panel是0size,看不见的
    这样试试看
    class MyFrame extends JFrame{ 
    MyFrame(){ 
    setSize(900,600); 
    setTitle("Title"); 
    MyPanel m=new MyPanel(); 
    m.setSize(500, 500);
    Container j=getContentPane(); 
    j.setLayout(new BorderLayout());
    j.add(m, BorderLayout.CENTER); 


      

  2.   

    MyPanel 應該重寫paint方法
    詳情如下:
    class MyPanel extends JPanel {
        public void paint(Graphics g) {
            super.paintComponent(g);
            g.drawString("Hello Panel", 100, 100);
        }
    }
      

  3.   

    你的MyPanel 有问题根本没有覆盖掉父类的paintConponentclass MyPanel extends JPanel {    @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawString("Hello Panel", 100, 100);
        }}