gpt4 book ai didi

java - 在 Swing 中制作股票行情自动收录器

转载 作者:行者123 更新时间:2023-11-30 04:20:09 25 4
gpt4 key购买 nike

我当前有一组 TickerSymbol() 对象,可以在 Swing JFrame 中的屏幕上滚动。我不知道如何让它环绕起来..在逻辑方面。

protected void animate() {
new Timer(TIMER_DELAY, new TimerListener()).start();
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g.setFont(BG_STRING_FONT);
g.setColor(Color.LIGHT_GRAY);
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
List<TickerSymbol> tickers = ticker.getTickers();
synchronized(tickers){
for(TickerSymbol ts : tickers) {
//Create formatted string with ticker info
// This part works fine
...
}
}

}

private class TimerListener implements ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
//TODO need to make the ticker wrap around rather than hard coding.
if (imgX <= -2000) {
imgX = getWidth();
} else {
imgX -= 1;
}

repaint();
};
}

正如您在上面看到的,我目前已将“imgX”重置为 getWidth() 的位置硬编码。这意味着字符串将重置其位置到应用程序的右上角。

我尝试使用 Guava 项目中的“Iterables.cycle”,但最终导致内存溢出。

Iterable<TickerSymbol> live = Iterables.cycle(tickers);
while(live.iterator().hasNext()) {
....

感谢任何帮助!

最佳答案

查看 Marquee Panel 。它允许您滚动包含组件的面板。因此,您可以创建一个面板,其中一个 JLabel 包含您想要滚动的文本,或者您可以向该面板添加多个标签,这样您就可以在选取框滚动时动态更新标签。

关于java - 在 Swing 中制作股票行情自动收录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17254088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com