Sagen wir einfach, ich habe ein Jlabel mit einem Text darin. Und ich möchte, dass der Text sich jede Sekunde nach links ändert, genau wie Text auf der Plakatwand.Wie erstellt man laufenden Text mit jlabel?
Ist es möglich? wenn ja, wie?
Sagen wir einfach, ich habe ein Jlabel mit einem Text darin. Und ich möchte, dass der Text sich jede Sekunde nach links ändert, genau wie Text auf der Plakatwand.Wie erstellt man laufenden Text mit jlabel?
Ist es möglich? wenn ja, wie?
Sie sollten javax.swing.Timer
verwenden, um JLabel
Updates zu planen. Bitte finden Sie vereinfachte Codeausschnitt unten:
JFrame frame = new JFrame("Test");
frame.setSize(300, 300);
JLabel label = new JLabel("This is text!!!");
frame.add(label);
frame.setVisible(true);
final int labelWidth = 300;
final AtomicInteger labelPadding = new AtomicInteger();
Timer timer = new Timer(20, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
label.setBorder(new EmptyBorder(0, labelPadding.getAndIncrement() % labelWidth, 0, 0));
}
});
timer.start();
Beachten Sie, dass AtomicInteger
nicht notwendig ist, aber Sie müssen einige final
Inhaber der Lage sein, es in innere Klasse oder Lambda zu verwenden.
Dies wird gemeinhin als "Marquee-Effekt" bezeichnet, und ja, wie bei allem anderen auch, ist dies sehr gut möglich. Weißt du, wie man Text oder ein JLabel bewegt? – Carcigenicate
ja ich weiß wie. –
Was hält Sie dann davon ab, dieses Wissen in.makijg Scroll-Text zu übersetzen? – Carcigenicate