Java(graphics2D)-简单双缓冲区JFrame加载屏幕
我有一个类来更新一个同步到歌曲的组件。当我第一次运行它时,加载歌曲需要一段时间,然后在加载时逐段显示图形 我想知道当JFrame同时加载我的剪辑和组件的图形时,是否/如何让它显示一个加载屏幕 而且,“stageComponent.setDoubleBuffered(true)”似乎什么也不做Java(graphics2D)-简单双缓冲区JFrame加载屏幕,java,load,jframe,splash-screen,doublebuffered,Java,Load,Jframe,Splash Screen,Doublebuffered,我有一个类来更新一个同步到歌曲的组件。当我第一次运行它时,加载歌曲需要一段时间,然后在加载时逐段显示图形 我想知道当JFrame同时加载我的剪辑和组件的图形时,是否/如何让它显示一个加载屏幕 而且,“stageComponent.setDoubleBuffered(true)”似乎什么也不做 public static void main(String[] args) { loadSong(SONG_NAME); JFrame frame = new JFrame(TITLE)
public static void main(String[] args)
{
loadSong(SONG_NAME);
JFrame frame = new JFrame(TITLE);
stageComponent = new StageComponent();
stageComponent.setDoubleBuffered(true);
frame.add(stageComponent);
frame.setVisible(true);
// If my stuff is loaded then start it all?
if (stageComponent.isShowing() && clip.isOpen()) {
Timer t = new Timer(TIME_DELAY, null);
final long initialTime = System.currentTimeMillis();
ActionListener stageListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
stageComponent.playSequences((int)(System.currentTimeMillis() - initialTime));
}
};
t.addActionListener(stageListener);
// This will play song and start timer at basically the same time right?
clip.start();
t.start();
}
}
提前谢谢 基本前提是有第三个窗口。您可以在后台进程中加载音乐,并显示一个漂亮的启动/消息屏幕。完成后,您将显示主屏幕。请记住,您需要在事件的上下文中与UI交互。好的,我如何知道音乐何时加载完毕?“clip.isOpen()或clip.isActive()”?那么图形加载呢。“setDoubleBuffered”似乎不起作用……没有真正的方法知道UI何时会在屏幕上完全实现。您最好希望知道您何时加载了任何资源(如图像)
setDoubleBuffered
只会影响组件更新的质量