public class test1 extends JFrame{
/**
 * 
 */
Graphics gh;
JPanel pane=new JPanel();
graphics_str gs=new graphics_str();public test1(){
setTitle("game");
setBounds(200,200,300,300);
getContentPane().add(gs);
    setContentPane(pane);
setDefaultCloseOperation(this.EXIT_ON_CLOSE);
}public static void main(String arg[]){
    test1 tt=new test1();   
tt.setVisible(true);
}
}class graphics_str extends JPanel{
Font font = new Font("宋体",Font.ITALIC+Font.BOLD,24);
Color color = Color.BLUE;
public void paintComponent(Graphics comp){
comp.setFont(font);
comp.setColor(color);
    comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd",50,50);
}
}
为什么graphics打印不出来东西呢?请高手解决下并告诉我为什么,就在我的代码基础上改,小弟深表感谢~

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【JAVA_dance】截止到2008-07-21 12:32:34的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:20                       每贴平均分数:20                       
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    去掉setContentPane(pane); 这一行
    你是在默认的content panel里面画的,结果你有从新设置了一个空的panel为content panel。当然什么都看不到了。
      

  3.   

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class Test1 extends JFrame { /**
     *
     */
    Graphics gh;
    JPanel pane = new JPanel();
    graphics_str gs = new graphics_str(); public Test1() {
    setTitle("game");
    setBounds(200, 200, 300, 300);
    getContentPane().add(this.gs);
    //setContentPane(this.pane);  //你把你的 JPanel 加到 ContentPane 里就行,你这句多余。
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } public static void main(String arg[]) {
    Test1 tt = new Test1();
    tt.setVisible(true);
    }}
    class graphics_str extends JPanel { Font font = new Font("宋体", Font.ITALIC + Font.BOLD, 24);
    Color color = Color.BLUE; public void paintComponent(Graphics comp) {
    super.paintComponent(comp);  //先调用一下超类的绘制组件方法,然后再画自己的东西。
    comp.setFont(this.font);
    comp.setColor(this.color);
    comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd", 50, 50);
    }}
      

  4.   

    在我这边试可以啊。删掉那句setContentPane(pane);
    你再把paintComponent方法换成paint试试。import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;import javax.swing.JFrame;
    import javax.swing.JPanel;public class Test1 extends JFrame {
    /**
     * 
     */
    Graphics gh;
    JPanel pane = new JPanel();
    graphics_str gs = new graphics_str(); public Test1() {
    setTitle("game");
    setBounds(200, 200, 300, 300);
    getContentPane().add(gs);
    // setContentPane(pane);
    setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    } public static void main(String arg[]) {
    Test1 tt = new Test1();
    tt.setVisible(true);
    }
    }class graphics_str extends JPanel {
    Font font = new Font("宋体", Font.ITALIC + Font.BOLD, 24);
    Color color = Color.BLUE; public void paint(Graphics comp) {
    comp.setFont(font);
    comp.setColor(color);
    comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd", 50, 50);
    }
    }
      

  5.   


    如果把 paintComponent 方法换成 paint 又不调用超类的 super.paint 那放到 graphics_str 里的组件就画不出来了。