import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JViewport;
import javax.swing.Timer;public class a extends JFrame {
private Timer timer;
private JLabel view;
private JViewport window;
public static void main(String[] args)
{
JFrame frm = new a("跑马灯");
frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
public a(String title) throws HeadlessException
{
super(title);
initComponents();
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e)
{
anchor = new Point();
anchor.x = -window.getExtentSize().width;
timer.start();
}
});
timer = new Timer(100, new ActionListener() {
public void actionPerformed(ActionEvent e)
{
animate();
}
});
timer.setInitialDelay(0);
}
private void initComponents()
{
String s = JOptionPane.showInputDialog(null, "请输入要实现效果的文字:");
view = new JLabel(s);
view.setFont(Font.decode("Dialog-BOLD-36"));
view.setForeground(Color.RED);
window = new JViewport();
window.setView(view);
getContentPane().add(window);
}
Point anchor;
private void animate()
{
Dimension extSize = window.getExtentSize();
Dimension viewSize = view.getPreferredSize();
anchor.x += 5;//设置移动的速度
window.setViewPosition(anchor);
if (anchor.x > viewSize.width)
anchor.x = -extSize.width;
}
}详细注释 谢谢
import java.awt.Dimension;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JViewport;
import javax.swing.Timer;public class a extends JFrame {
private Timer timer;
private JLabel view;
private JViewport window;
public static void main(String[] args)
{
JFrame frm = new a("跑马灯");
frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
public a(String title) throws HeadlessException
{
super(title);
initComponents();
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e)
{
anchor = new Point();
anchor.x = -window.getExtentSize().width;
timer.start();
}
});
timer = new Timer(100, new ActionListener() {
public void actionPerformed(ActionEvent e)
{
animate();
}
});
timer.setInitialDelay(0);
}
private void initComponents()
{
String s = JOptionPane.showInputDialog(null, "请输入要实现效果的文字:");
view = new JLabel(s);
view.setFont(Font.decode("Dialog-BOLD-36"));
view.setForeground(Color.RED);
window = new JViewport();
window.setView(view);
getContentPane().add(window);
}
Point anchor;
private void animate()
{
Dimension extSize = window.getExtentSize();
Dimension viewSize = view.getPreferredSize();
anchor.x += 5;//设置移动的速度
window.setViewPosition(anchor);
if (anchor.x > viewSize.width)
anchor.x = -extSize.width;
}
}详细注释 谢谢
定义类名最好使用大写字母开头
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JViewport;
import javax.swing.Timer;/**
* @author Administrator
*
*/
/**
* @author Administrator
*
*/
public class A extends JFrame {
private Timer timer;
private JLabel view;
private JViewport window; /*
* 程序入口,先生成一个A的实例
* 这里会调用A的构造方法
* */
public static void main(String[] args) {
JFrame frm = new A("跑马灯");
frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
} /*
* 类A的构造方法
*/
public A(String title) throws HeadlessException {
super(title); initComponents(); //弹出对话框,让你输入文字 //给A增加一个component监听器,处理缩放重绘
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
anchor = new Point();
anchor.x = -window.getExtentSize().width;
timer.start();//调用定时器动作
}
}); //定义一个定时器。在这里定时调用animate()来实现动画
timer = new Timer(100, new ActionListener() {
public void actionPerformed(ActionEvent e) {
animate();//让标签移动
}
});
timer.setInitialDelay(0);
} private void initComponents() {
//这里实际弹出对话框
String s = JOptionPane.showInputDialog(null, "请输入要实现效果的文字:");
view = new JLabel(s);//把输入的文字给一个label
view.setFont(Font.decode("Dialog-BOLD-36"));
view.setForeground(Color.RED); window = new JViewport();
window.setView(view);
getContentPane().add(window);//把标签放到主界面上
} Point anchor; //具体实现动画效果,让label的x坐标依次变化
private void animate() {
Dimension extSize = window.getExtentSize();
Dimension viewSize = view.getPreferredSize();
anchor.x += 5;// 设置移动的速度
window.setViewPosition(anchor);
if (anchor.x > viewSize.width)
anchor.x = -extSize.width;
}
}