import javax.swing.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;public class my extends JLabel
{
private int tracking;
public my (String text,int tracking){
 super(text);
 this.tracking=tracking;
}
 private int left_x,left_y,right_x,right_y;
 private Color left_color,right_color;  public void setLeftShadow(int x, int y, Color color)
  {
   left_x = x;
   left_y = y;
   left_color = color;
   }
   public void setRightShadow(int x, int y, Color color)
   {
   right_x = x;
   right_y = y;
   right_color = color;
   }
  public Dimension getPreferredSize()
  {
   String text = getText();
   FontMetrics fm = this.getFontMetrics(getFont());
    int w = fm.stringWidth(text);  
    w += (text.length() - 1) * tracking;
    w += left_x + right_x;
    int h = fm.getHeight();
    h += left_y + right_y;
    return new Dimension(w, h);
    }
    public void paintComponent(Graphics g)
   {
    ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
   RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
   char[] chars = getText().toCharArray();
   FontMetrics fm = this.getFontMetrics(getFont());
   int h = fm.getAscent();
   g.setFont(getFont());
   int x = 0;
   for (int i = 0; i < chars.length; i++)
   {
    char ch = chars[i];
    int w = fm.charWidth(ch) + tracking;
    g.setColor(left_color);
    g.drawString("" + chars[i], x - left_x, h - left_y);
    g.setColor(right_color);
    g.drawString("" + chars[i], x + right_x, h + right_y);
    g.setColor(getForeground());
    g.drawString("" + chars[i], x, h);
    x += w;
    ((Graphics2D) g).setRenderingHint(
    RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
    p(Character.toString(ch) + ":" + x);
    }
    }
       public static void main(String[] args)
       {
        my label = new my("Magic", 0);
        label.setLeftShadow(1, 1, Color.white);
        label.setRightShadow(2, 3, Color.black);
        label.setForeground(Color.gray);
        label.setFont(label.getFont().deriveFont(140f));
        JFrame frame = new JFrame("JFC/Swing:JLabel魔法");
        frame.getContentPane().add(label);
        frame.pack();
        frame.setVisible(true);
        }
       }
  出错是在p(Character.toString(ch) + ":" + x);这里,提示是cannot resolve symbol method p (java.lang.String)
  先谢谢了