Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图标图像加载速度不够快_Java_Swing_Load_Icons_Jpanel - Fatal编程技术网

Java 图标图像加载速度不够快

Java 图标图像加载速度不够快,java,swing,load,icons,jpanel,Java,Swing,Load,Icons,Jpanel,我有一组JPanel和JLabel的图标,这些图标代表剧院的座位,所有这些都是使用loop生成的。 加载座位后,已预订的座位需要有不同的图像图标。因此,if(){}在生成所有座位后,如果座位已预订,则对所有座位执行检查以更改标签图标 但我磁盘上的图像图标加载速度不够快,因此有时面板仅添加到上次预订的图像图标,或者根本不添加。 每个代表椅子的面板都添加了MouseListener界面。因此,在鼠标悬停或单击ImageIcon时,添加到面板中的对象也会发生更改,发生这种情况时会有太多的延迟。我认为这

我有一组
JPanel
JLabel
的图标,这些图标代表剧院的座位,所有这些都是使用loop生成的。 加载座位后,已预订的座位需要有不同的图像图标。因此,
if(){}
在生成所有座位后,如果座位已预订,则对所有座位执行检查以更改标签图标

但我磁盘上的图像图标加载速度不够快,因此有时面板仅添加到上次预订的图像图标,或者根本不添加。 每个代表椅子的面板都添加了
MouseListener
界面。因此,在鼠标悬停或单击
ImageIcon
时,添加到面板中的对象也会发生更改,发生这种情况时会有太多的延迟。我认为这与磁盘上的图像有关

  • 我如何在内存中加载和存储那些2,78 KB大小的图标图像,并在内存中引用它们,这样就不会延迟读取它们

  • 单击某个座椅时,我需要更改该座椅的标签图像,并从该座椅上删除鼠标侦听器。是否有一种方法可以将鼠标侦听器移到特定的座椅上,而无需参考特定的鼠标侦听器。我需要在鼠标监听器之外做这件事

    panel.removeAll();
    
    不会删除生成面板时添加的鼠标侦听器

  • public void drawSeats(int-ammontseat、int-localLength、int-localWidth){
    pnlSeatsHolder=newjpanel();
    pnlSeatsHolder.setPreferredSize(新维度(localLength*40,localLength*45));
    pnlSeatsHolder.setLayout(新的FlowLayout());
    
    对于(int d=0;d对于三个图像,在初始化类时加载它们并将它们存储为类的属性。当然,三个图像中的每一个都可以根据需要在任意多个图标中使用。

    “如何加载和存储这些图标图像”有多少个(不同)图像是否存在?你还应该考虑使用< <代码> JButton < /代码>或<代码> JToggleButton <代码> > <代码> ActuistListor < /C> >而不是<代码> Jabel> <代码> > < MouseListener > <代码>。按钮不仅对鼠标和键盘输入起反应,而且该按钮支持更改悬停、按下、聚焦等图标。3.红色座椅、蓝色座椅和黄色座椅,生成的座椅数量取决于其他周长。但这3个图像在生成的所有座椅之间共享。黄色在开始时添加到所有座椅上。在鼠标上方,它变为蓝色,当鼠标单击时,它变为红色。1)只需在应用程序启动期间读取它们,并在类中保留一个引用(可能是Singleton)在需要时访问/使用它们。2)查看@andrewhompson评论。我已经写了一个很长的学校项目shcool。我真的不想做太多更改。解决了,它正在工作,但这个延迟很烦人。例如,这是需要对鼠标hoover执行的操作:pnlChair.removeAll();pnlChair.add(lblsearted);pnlChair.repaint();pnlChair.removeMouseListener(这个);