一个很奇怪的问题,关于文件选择器的,谁帮忙解答一下……

hackerain 2011-09-11 02:02:35
我的文件选择对话框是这样定义的:

JFileChooser jfc=new JFileChooser(new File(".",""));

然后设置了一个文件过滤器:

jfc.setFileFilter(new PNGfilter());

文件过滤器类是如下定义的:

private class PNGfilter extends javax.swing.filechooser.FileFilter
{
public PNGfilter()
{

}
public boolean accept(File file)
{
if(file.toString().toLowerCase().endsWith(".png")||
file.isDirectory())
{
return true;
}
else
return false;
}
public String getDescription()
{
return "*.PNG(PNG图像)";
}
}


运行之后,奇怪的问题就出现了:每次运行,有的时候会正常显示文件选择对话框,没有什么错误;可是有时候,除了显示文件选择对话框外,还有红色的那一行报空指针的错误,请问谁能解答一下,这个是怎么回事?
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2011-09-11
  • 打赏
  • 举报
回复
试试看用SwingUtilities.invokeLater能不能改善
for example
SwingUtilities.invokeLater(new Runnable(){
public void run() {
...
}
});
qybao 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hackerain 的回复:]
哦,原来这是jdk的一个bug啊!http://bugs.sun.com/view_bug.do;jsessionid=ba24c23e8dc7944129c6b5c658b9?bug_id=6756220
[/Quote]
这样啊,线程协调没做好。
hackerain 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qybao 的回复:]

JFileChooser jfc=new JFileChooser(new File(".")); //have a try
[/Quote]

问题照旧……
hackerain 2011-09-11
  • 打赏
  • 举报
回复
qybao 2011-09-11
  • 打赏
  • 举报
回复
JFileChooser jfc=new JFileChooser(new File(".")); //have a try
hackerain 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qybao 的回复:]

if(file.toString().toLowerCase().endsWith(".png")||
如果file是null的话就报空指针异常了

have a try
Java code
public boolean accept(File file)
{
if (file == null) reurn false;
return (file.toString().toLo……
[/Quote]

而且按你说的改了一下,问题依然存在,还是时有时无,报的错是这样的:
Exception in thread "Basic L&F File Loading Thread" java.lang.NullPointerException
是某个线程出了错?
hackerain 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qybao 的回复:]

if(file.toString().toLowerCase().endsWith(".png")||
如果file是null的话就报空指针异常了

have a try
Java code
public boolean accept(File file)
{
if (file == null) reurn false;
return (file.toString().toLo……
[/Quote]
file在什么情况下就是null了呢?为什么有的时候会报null的错,有的时候不报呢?
qybao 2011-09-11
  • 打赏
  • 举报
回复
if(file.toString().toLowerCase().endsWith(".png")||
如果file是null的话就报空指针异常了

have a try
public boolean accept(File file)
{
if (file == null) reurn false;
return (file.toString().toLowerCase().endsWith(".png")|| file.isDirectory());
}
内容概要:本文提出了一种基于蒙特卡洛模拟与拉格朗日松弛法相结合的分散式优化方法,用于解决电动汽车充电站在分时电价机制下的有序充电调度问题。通过构建考虑用户充电需求与电网负荷平衡的优化模型,利用拉格朗日松弛法处理多车充电之间的耦合约束,实现去中心化的决策过程;同时引入蒙特卡洛方法模拟用户充电行为的不确定性,提升调度策略的鲁棒性。该方法有效降低了电网负荷峰谷差,提高了充电经济性与系统运行效率,为大规模电动汽车接入提供了可行的调度解决方案。; 适合人群:具备电力系统优化基础和Matlab编程能力的研究生、科研人员,以及从事智能电网、电动汽车能源管理等相关领域的工程技术人员。; 使用场景及目标:①应用于城市充电站集群的运营调度,实现削峰填谷与成本优化;②支撑电力系统需求侧管理研究,评估分时电价政策对用户充电行为的引导效果;③为多主体参与的分散式能源管理系统提供算法参考与仿真验证工具。; 阅读建议:建议读者结合提供的Matlab代码深入理解拉格朗日乘子迭代更新机制与蒙特卡洛场景生成流程,重点分析算法收敛性与不同电价策略下的调度结果差异,可通过调整用户数量、充电功率等参数进行仿真实验,以掌握模型的实际应用特性。

62,622

社区成员

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

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