не удалось получить эффект выделения

Возможный дубликат:
эффект выделения в 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();
 }
}

person Suhail Gupta    schedule 21.04.2011    source источник
comment
Это домашнее задание, не так ли? Что вы пробовали?   -  person Robin Green    schedule 21.04.2011


Ответы (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);     
} 
person unk1102    schedule 21.04.2011