代码与问题如下

一个昵称而已T 2015-09-07 10:59:45
源代码的作用是为了定时轮流显示不同国家的国旗和国歌,不过还有一个组合框可以选择国家,还有两个按键暂停和启动国歌,但是每次自动换国歌或者选择组合框里的国家时,只有相应的国歌会变,国旗不会变,可是在国歌改变后改变窗口大小时国旗又会变成相应的,想请大神解决一下。

public class ImageAudioAnimation extends JApplet {
private final static int NUMBER_OF_NATIONS=7;
private final static String[] nations={"China","Denmark","Germany","India","Norway","UK","US"};
private int current=0;
private AudioClip[] audioClips=new AudioClip[NUMBER_OF_NATIONS];
private AudioClip currentAudioClip;
private ImagePanel imagePanel;
private ImagePanel[] imagePanels=new ImagePanel[NUMBER_OF_NATIONS];

private int[] delays={4800,54000,59000,54000,59000,31000,68000};//根据不同国歌的时间长短
private Timer timer=new Timer(delays[0],new ActionListener() {
public void actionPerformed(ActionEvent e) {
current=(current+1)%NUMBER_OF_NATIONS;
presentNation(current);
}
});

private JButton jbtResume=new JButton("Resume");
private JButton jbtSuspend=new JButton("Suspend");
private JComboBox<String> jcboNations=new JComboBox<String>(nations);

public ImageAudioAnimation() {
for(int i=0;i<NUMBER_OF_NATIONS;i++) {
imagePanels[i]=new ImagePanel(new ImageIcon(getClass().getResource(nations[i]+".gif")));
audioClips[i]=Applet.newAudioClip(this.getClass().getResource(nations[i]+".mid"));
}

JPanel panel=new JPanel();
panel.add(jbtResume);
panel.add(jbtSuspend);
panel.add(new JLabel("Select"));
panel.add(jcboNations);

add(panel,BorderLayout.SOUTH);
imagePanel=imagePanels[0];
add(imagePanel);

jbtResume.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
start();
}
});
jbtSuspend.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
stop();
}
});
jcboNations.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
stop();
current=jcboNations.getSelectedIndex();
presentNation(current);
timer.start();
}
});

timer.start();
currentAudioClip=audioClips[0];
currentAudioClip.play();
}

private void presentNation(int index) {
this.remove(imagePanel);
this.imagePanel=imagePanels[index];
this.add(imagePanel);
jcboNations.setSelectedIndex(index);
currentAudioClip=audioClips[index];
currentAudioClip.play();
timer.setDelay(delays[index]);
}

public void start() {
timer.start();
currentAudioClip.play();
}

public void stop() {
timer.stop();
currentAudioClip.stop();
}

protected class ImagePanel extends JPanel {
private Image image;

public ImagePanel(ImageIcon imageIcon) {
image=imageIcon.getImage();
}

protected void paintComponent(Graphics g) {
super.paintComponent(g);

if(image!=null) {
g.drawImage(image, 0, 0, getWidth(),getHeight(),this);
}
}
}
}
...全文
106 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
【变换域数字水印技术:一种信息隐藏的方法】使用多幅图像作为水印的数字水印技术,该技术基于变换域函数,包括离散小波变换(DWT)、离散余弦变换(DCT)和奇异值分解(SVD)(Matlab代码实现)内容概要:本文介绍了一种基于变换域函数的多幅图像数字水印技术,主要采用离散小波变换(DWT)、离散余弦变换(DCT)和奇异值分解(SVD)相结合的方法,在Matlab环境中实现水印的嵌入与提取。该技术通过在变换域中处理宿主图像和水印图像,增强了水印的鲁棒性和不可见性,适用于版权保护、数据认证等场景。文中详细阐述了算法流程、关键技术环节及其实现代码,展示了该方法在抵抗常见图像攻击方面的有效性。; 适合人群:具备数字图像处理基础,熟悉Matlab编程,从事信息安全、多媒体技术或相关领域研究的研究生及科研人员。; 使用场景及目标:①实现多幅图像作为水印的信息隐藏;②提升水印在复杂攻击下的鲁棒性与透明性;③为学术研究和工程应用提供可复现的Matlab代码参考; 阅读建议:建议读者结合Matlab代码逐步调试算法流程,深入理解DWT、DCT与SVD在水印技术中的协同作用,并可通过添加不同攻击测试来验证算法性能。
【SCI级别】多策略改进鲸鱼优化算法(HHWOA)和鲸鱼优化算法(WOA)在CEC2017测试集函数F1-F30寻优对比内容概要:本文主要介绍了多策略改进鲸鱼优化算法(HHWOA)与传统鲸鱼优化算法(WOA)在CEC2017测试集的30个基准函数(F1-F30)上的寻优性能对比研究。通过引入多种优化策略对原始WOA进行改进,提升了算法的收敛速度、全局搜索能力和避免陷入局部最优的能力。实验结果表明,HHWOA在多数测试函数上表现优于标准WOA,验证了所提改进策略的有效性。该研究为智能优化算法的性能提升提供了可行的技术路径,并适用于复杂工程优化问题的求解。; 适合人群:具备一定算法基础的研究生、科研人员及从事智能优化、人工智能、自动化等领域工作的工程技术人员,熟悉MATLAB编程者更佳。; 使用场景及目标:①用于解决复杂的数值优化问题,如工程参数优化、机器学习超参数调优等;②作为智能优化算法教学与研究的案例,帮助理解鲸鱼优化算法的原理及其改进方法;③为相关领域提供高性能优化工具的开发参考。; 阅读建议:建议结合提供的Matlab代码实现进行实验复现,深入理解算法细节与改进策略的作用机制,同时可通过更换测试函数或应用场景进一步拓展研究深度。
【负荷预测】基于VMD-CNN-LSTM的负荷预测研究(Python代码实现)内容概要:本文介绍了基于变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)相结合的VMD-CNN-LSTM模型在负荷预测中的研究与应用,采用Python代码实现。该方法首先利用VMD对原始负荷数据进行分解,降低序列复杂性并提取不同频率的模态分量;随后通过CNN提取各模态的局部特征;最后由LSTM捕捉时间序列的长期依赖关系,实现高精度的负荷预测。该模型有效提升了预测精度,尤其适用于非平稳、非线性的电力负荷数据,具有较强的鲁棒性和泛化能力。; 适合人群:具备一定Python编程基础和深度学习背景,从事电力系统、能源管理或时间序列预测相关研究的科研人员及工程技术人员,尤其适合研究生、高校教师及电力行业从业者。; 使用场景及目标:①应用于日前、日内及实时负荷预测场景,支持智慧电网调度与能源优化管理;②为研究复合型深度学习模型在非线性时间序列预测中的设计与实现提供参考;③可用于学术复现、课题研究或实际项目开发中提升预测性能。; 阅读建议:建议读者结合提供的Python代码,深入理解VMD信号分解机制、CNN特征提取原理及LSTM时序建模过程,通过实验调试参数(如VMD的分解层数K、惩罚因子α等)优化模型性能,并可进一步拓展至风电、光伏等其他能源预测领域。

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧