【问题标题】:unable to get marquee effect [duplicate]无法获得选框效果[重复]
【发布时间】:2011-04-21 17:02:30
【问题描述】:

可能重复:
Marquee effect in Java Swing

我正在尝试获得选框效果(与 html 中的效果相同)。但是我无法使用此代码执行此操作。如何改进此代码以获得选取框效果?

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

class tester {
JLabel l;

tester() {
JFrame fr=new JFrame();
JPanel p=new JPanel();
l=new JLabel("");
fr.add(p);
p.add(l);
fr.setVisible(true);
fr.setSize(400,400);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void MarqueeEffect() {
  ActionListener ac = new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
      l.setText("To action alone hast thou a right and never at all to its fruits let not the   fruits of action be thy motive; neither let there be in thee any attachment to inaction");
    }
  };
  new Timer(2000,ac).start();
}

public static void main(String args[]) {
  tester t=new tester();
  t.MarqueeEffect();
 }
}

【问题讨论】:

  • 这是作业,不是吗?你试过什么?

标签: java swing marquee


【解决方案1】:

您必须扩展 JLabel 并覆盖 paintComponent 以带来选取框效果。它不会仅仅通过在不扩展 JLabel 的情况下为其设置文本来实现。您可以在自定义的 JLabel 类中执行类似的操作。

protected void paintComponent(Graphics g)
{         
g.translate((int)((System.currentTimeMillis() / MARQUEE_SPEED_DIV) % (getWidth() * 2)) - getWidth(), 0);         
super.paintComponent(g);        
repaint(REPAINT_WITHIN_MS);     
} 

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    相关资源
    最近更新 更多