无法在JLabel-Java、Swing中加载ImageIcon
我有一个问题已经让我厌烦了好几天了。 我正在实现一些swing接口,用于加载映像: 当我按下按钮时,它会触发一个调用以下方法的事件:无法在JLabel-Java、Swing中加载ImageIcon,java,swing,jlabel,imageicon,Java,Swing,Jlabel,Imageicon,我有一个问题已经让我厌烦了好几天了。 我正在实现一些swing接口,用于加载映像: 当我按下按钮时,它会触发一个调用以下方法的事件: private void GetDataPanelGeral() { ArrayList<String> Files = new ArrayList<>(); java.util.Date selectedDate = (java.util.Date) this.JDatePickerImpl_GERAL_MUDANÇAS
private void GetDataPanelGeral()
{
ArrayList<String> Files = new ArrayList<>();
java.util.Date selectedDate = (java.util.Date) this.JDatePickerImpl_GERAL_MUDANÇAS_datePicker_START.getModel().getValue();
java.sql.Date sqlDateINICIO = new java.sql.Date(selectedDate.getTime());
selectedDate = (java.util.Date) this.JDatePickerImpl_GERAL_MUDANÇAS_datePicker_END.getModel().getValue();
java.sql.Date sqlDateFIM = new java.sql.Date(selectedDate.getTime());
//CALL MODULE 5
RunningLoop loop = null;
Thread t = new Thread
(
loop = new RunningLoop(50000,this.StringDBName,this.StringDBDriver,
this.StringDBUser,this.StringDBPass,this.PathToData,
sqlDateINICIO.toString(),
sqlDateFIM.toString(),
true)
);
t.start();
loop.StopLooping();
this.ImageLabelGERALMUNDANCAS.revalidate();
this.ImageLabelGERALMUNDANCAS.repaint();
this.ImageLabelGERALMUNDANCAS = new JLabel(new ImageIcon("this.PathToData+"/Results/Outputs/P5/0.png",""));
this.ImageLabelGERALMUNDANCAS.repaint();
JPanel Aggregator = new JPanel();
Aggregator.add(this.ImageLabelGERALMUNDANCAS);
Aggregator.setBackground(this.color);
//this.Aggregatorr.add(this.ImageLabelGERALMUNDANCAS);
this.JPanel_TABGeral.remove(1);
this.JPanel_TABGeral.add(Aggregator,1);
this.JPanel_TABGeral.revalidate();
this.JPanel_TABGeral.repaint();
Aggregator.revalidate();
Aggregator.repaint();
}
看起来一切正常,但它不加载图像。。如果我尝试加载另一个图像,它可以完美地工作,因此我认为问题在于线程中图像的创建
有人能帮我吗
Ps:我仍然需要在一些代码中工作,目前我正在尽一切努力来完成这项工作,然后我会担心更好的代码
亲切问候您创建了一个新的
ImageLabelGERALMUNDANCAS实例
,但它从未添加到任何内容中,因此它从未显示在屏幕上。该标签添加到JPanel Agregator,即添加到JPanel_选项卡中。我认为这个问题一定与这个形象的创造有关。。当我尝试加载其他内容时,它可能还没有准备好。。因为如果我尝试添加一些其他图像,它会正常工作考虑提供一个演示您的问题的示例,这将减少猜测工作并产生更好的响应。我将避免直接使用ImageIcon
加载图像,而改为使用ImageIO.read
,至少会,如果无法加载图像,则引发IOException
。另外,我很确定“this.PathToData+”/Results/Outputs/P5/0.png“
不会编译…这与MadProgrammer所说的一致。创建URL
,甚至可能将图像文件设置为类路径资源,并以这种方式加载URL
(如果失败,它也会生成异常
)并使用ImageIO.read()
。
//CALL MODULE 5
RunningLoop loop = null;
Thread t = new Thread
(
loop = new RunningLoop(50000,this.StringDBName,this.StringDBDriver,
this.StringDBUser,this.StringDBPass,this.PathToData,
sqlDateINICIO.toString(),
sqlDateFIM.toString(),
true)
);
t.start();
loop.StopLooping();