大家好 小弟刚刚学习swing 按照教程敲了代码 但是有错误
请大家帮帮忙 谢谢了import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;public class MyTest01 extends JFrame { public MyTest01() { setSize(400, 360);
setTitle("test");
myPanel mp = new myPanel();
add(mp); } public static void main(String[] args) {
MyTest01 mt = new MyTest01();
mt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mt.setVisible(true);
}}class myPanel extends JPanel {
public void painComponent(Graphics g) {
super.paintComponent(g);
String aa = "测试的字符";
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(Color.red);
g2d.drawString(aa, 10, 10);
}
}
希望结果出来 是在面板上出现红色的测试的字符字样 但是却没有
希望告诉我那里错了 我已经晕了

解决方案 »

  1.   

    把add(mp);改成getContentPane().add(mp);
    另外没有调用painComponent()方法啊~
      

  2.   

    public void painComponent(Graphics g) {
    public void paintComponent(Graphics g)
    少了个字母~~~
      

  3.   

    总结一下:
    第一:把add(mp);改为getContentPane().add(mp);因为是JFrame所以必须得到当前窗体的网格包,才能添加组件.
    第二:把painComponent(Graphics g)改为paintComontnet(Graphics g),就是少了个t;但程序不会报错,也不会抛异常,但是那个方法不会被执行.
    说明一点:paintComponent(Graphics g)这个方法是在绘制窗体时自动调用的.不用手动调用.