Идея такая:
| Код | class CreepingLine extends JComponent { private String text; private int offset;
public CreepingLine(String text) { setText(text); }
public String getText() { return text; }
public void setText(String text) { this.text = text; }
protected void paintComponent(Graphics g) { super.paintComponent(g); g.setFont(getFont()); g.setColor(getForeground()); int height = g.getFontMetrics().getHeight(); g.drawString(text, 0 - offset, height); }
public static void main(String[] args) throws Exception { CreepingLine creepingLine = new CreepingLine("А я достаю из широких штанин пиратам назло, словно в shop’e я - смотрите, завидуйте, DOS 3.1, Лицензионная копия!");
JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getContentPane().add(creepingLine); frame.setSize(400, 300); frame.setLocationRelativeTo(null); frame.setVisible(true);
for(int i = 0; i < 1000; i++) { creepingLine.offset = i; creepingLine.repaint(); Thread.sleep(125); } } } |
но реализацию еще надо дорабатывать. |