又来让高手帮忙了,  哈哈!
怎样让字体在窗体上从左到右或从右到左滚动呢?  是不是要计算啊 ?
请指点,最好把代码写出来!谢谢!

解决方案 »

  1.   


    package je.test;
    //creater:Reindeer 2008-04-22
    import javax.swing.*;public class TextMove
    {
    JLabel lab;
    int i;
    String str;

    public TextMove()
    {
    JFrame frame = new JFrame("TextMove");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400,200);
    str = "I'm moving...";
    lab = new JLabel(str);
    frame.add(lab);
    frame.setVisible(true);
    i=0;
    while(true)
    {
      
    str = "        "+str;
    try
    {
    Thread.sleep(1000);
    lab.setText(str);
    }
    catch(InterruptedException e)
    {
    }
    }
    }

    public static void main(String args[])
    {
    new TextMove();
    }
    }
      

  2.   

    高手!正在学习中,各位大虾都来java专用群6188536
      

  3.   

    //creater:Reindeer 2008-04-22
    import javax.swing.*;public class TextMove
    {
        JLabel lab;
        int i;
        String str;
        
        public TextMove()
        {
            JFrame frame = new JFrame("TextMove");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400,200);
            str = "I'm moving . . .";
            String str2 = "";    
            lab = new JLabel(str);
            frame.add(lab);
            frame.setVisible(true);
            i=0;
            while(true)
            {
                str2 +=  "        ";             
                          
                try
                {
                    Thread.sleep(1000);
                    //String str2 = null;
                    for(i=0; i<= str.length(); i++)
                    {
                     Thread.sleep(20);
                     lab.setText(str2 + str.substring(0,i));
                    }
                }
                catch(InterruptedException e)
                {
                }
            }
        }
        
        public static void main(String args[])
        {
            new TextMove();
        }
    }连续显示。呵呵学习啊。
      

  4.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class WelcomeJFrame extends JFrame
    {
    private JDialog dialog;
    private JLabel label_dialog;
    public WelcomeJFrame(String[] texts)
    {
    super("滚动字");
    this.setSize(400,300);
    this.setLocation(300,240);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);

    if(texts==null||texts.length==0)
            this.add(new RollbyJPanel("Welcome!"));
    else
    {
    this.setLayout(new GridLayout(texts.length,1));
    for(int i=0;i<texts.length;i++)
           this.add(new RollbyJPanel(texts[i]));
    }
    this.setVisible(true);

    dialog=new JDialog(this,"提示",true);
    dialog.setSize(240,80);
    label_dialog=new JLabel("",JLabel.CENTER);
    dialog.add(label_dialog);
    dialog.setDefaultCloseOperation(HIDE_ON_CLOSE);
    }

    public WelcomeJFrame()
    {
    this(null);
    }

    private class RollbyJPanel extends JPanel implements ActionListener,Runnable
    {
    private JTextField text_word,text_sleep;
    private JButton button_start,button_interrupt;
    private JTextField text_state;
    private Thread thread_rollby;
    private int sleeptime;

    private RollbyJPanel(String text)
    {
    this.setLayout(new GridLayout(2,1));
    for(int i=0;i<100;i++)
    text=text+"";
    text_word=new JTextField(text);
    this.add(text_word);

    JPanel panel_sub=new JPanel(new FlowLayout(FlowLayout.LEFT));
    this.add(panel_sub);

    panel_sub.add(new JLabel("sleep"));

    this.sleeptime=(int)(Math.random()*100);
    text_sleep=new JTextField(""+sleeptime,5);
    panel_sub.add(text_sleep);
    text_sleep.addActionListener(this);

    button_start=new JButton("启动");
    panel_sub.add(button_start);
    button_start.addActionListener(this);

    button_interrupt=new JButton("中断");
    panel_sub.add(button_interrupt);
    button_interrupt.addActionListener(this);

    thread_rollby=new Thread(this);
    button_interrupt.setEnabled(false);

    panel_sub.add(new JLabel("state"));
    text_state=new JTextField(""+thread_rollby.getState(),10);
    text_state.setEditable(false);
    panel_sub.add(text_state);
    }

    public void run()
    {
    while(thread_rollby.isAlive()&&!thread_rollby.isInterrupted())
    {
    try
    {
    String str=text_word.getText();
    str=str.substring(1)+str.substring(0,1);
    text_word.setText(str);
    thread_rollby.sleep(sleeptime);
    }

    catch(InterruptedException e)
    {
    break;
    }

    }
    }    public void actionPerformed(ActionEvent e)
    {
    if(e.getSource()==button_start)
    {
    thread_rollby=new Thread(this);
    thread_rollby.start();
    text_state.setText(""+thread_rollby.getState());
    button_start.setEnabled(false);
    button_interrupt.setEnabled(true);
    }

    if(e.getSource()==button_interrupt)
    {
    thread_rollby.interrupt();
    text_state.setText(""+thread_rollby.getState());
    button_start.setEnabled(true);
    button_interrupt.setEnabled(false);
    }

    if(e.getSource()==text_sleep)
    {
    try
    {
    sleeptime=Integer.parseInt(text_sleep.getText());
    }
    catch(NumberFormatException nfe)
    {
    label_dialog.setText("\""+text_sleep.getText()+"\" 不能转换成整数,请重新输入!");
    dialog.setLocation(this.getX()+100,this.getY()+100);
    dialog.setVisible(true);
    }
    }
    }
    }
    public static void main(String arg[])
    {
    String[] texts={"Welcome","Hello","Rollby"};
    new WelcomeJFrame(texts);
    }
    }
      

  5.   

    if(texts==null ¦ &brvbartexts.length==0)  这句话报错。