读书人

大家帮忙看看为什么小弟我的面板不显示

发布时间: 2012-04-04 16:38:51 作者: rapoo

大家帮忙看看为什么我的面板不显示内容
学习了Timer类,就按照书上的代码写了个消息在面板上移动的代码,但是现在消息不显示出来?怎么回事嗯?大家帮忙看看~

Java code
import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;public class AnimationDemo extends JFrame {    public AnimationDemo() {        add(new MovingMessagePanel("message moving"));    }        public static void main(String[] args) {        AnimationDemo frame = new AnimationDemo();        frame.setTitle("AnimationDemo");        frame.setSize(280, 100);        frame.setLocationRelativeTo(null);        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);        frame.setVisible(true);    }        static class MovingMessagePanel extends JPanel {        public MovingMessagePanel(String message) {            this.message = message;                        Timer time = new Timer(1000, new TimerListener());            time.start();        }                protected void paintComponet(Graphics g) {            super.paintComponent(g);                        if (x > getWidth()) {                x = -20;            }            x += 5;            g.drawString(message, x, y);        }                class TimerListener implements ActionListener {            public void actionPerformed(ActionEvent e) {                repaint();            }        }        private int x = 0;        private int y = 20;        private String message = "Welcome to Java";    }}


[解决办法]
写错函数名了吧?

protected void paintComponet(Graphics g) {

Java code
        @Override        public void paint(Graphics g) {            // TODO Auto-generated method stub            super.paint(g);            if (x > getWidth()) {                x = -20;            }            x += 5;            g.drawString(message, x, y);        } 

读书人网 >J2SE开发

热点推荐