弱弱的问下ldh911,approveSelection()没选文件是不会被触发的

Amendla 2012-08-28 10:56:29
昨天发了个帖:“高分雪地挥泪跪求获取JFileChooser弹出JDialog的按钮方法”
弱弱的问下ldh911,approveSelection()方法没选文件或者没填路径是不会被触发的,这就没办法判断所选文件路径是否为空了,在线等。。。
...全文
219 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amendla 2012-08-29
  • 打赏
  • 举报
回复
大神啊,膜拜一下,感谢!!!
MiceRice 2012-08-29
  • 打赏
  • 举报
回复
确实出了个难题啊,供参考了:


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.lang.reflect.*;

import javax.swing.*;
import javax.swing.plaf.basic.*;

public class TestJFileChooser extends JFileChooser {

private boolean isSelected = false;

public static void main(String[] args) {
new TestJFileChooser().showOpenDialog(null);

}

@Override
public int showDialog(Component parent, String approveButtonText) throws HeadlessException {
if (this.ui instanceof BasicFileChooserUI) {
try {
Method method = BasicFileChooserUI.class.getDeclaredMethod("getApproveButton", JFileChooser.class);
method.setAccessible(true);
JButton btnApprove = (JButton) method.invoke(this.ui, this);
System.out.println(btnApprove);
btnApprove.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if (TestJFileChooser.this.isSelected) {
TestJFileChooser.this.isSelected = false;
} else {
JOptionPane.showMessageDialog(null, "Please select a file.");
}
}
});
} catch (Exception e) {
e.printStackTrace();
}

}
return super.showDialog(parent, approveButtonText);
}

@Override
public void setSelectedFile(File file) {
this.isSelected = true;
super.setSelectedFile(file);
}

}
Amendla 2012-08-28
  • 打赏
  • 举报
回复
是的,需求是点击打开按钮,判断所选文件路径是否为空,若为空弹出“请选择文件!”提示

MiceRice 2012-08-28
  • 打赏
  • 举报
回复
咦?如果你使用 showOpenDialog() 开启对话框的话,完全没选择文件就点击“打开”,对话框根本就不会有任何反应啊?
内容概要:本文围绕通过短时倒谱(Cepstrogram)计算进行时-倒频分析的研究,提出了一种基于Matlab的信号处理方法,旨在从复杂信号中提取时变的倒频域特征,尤其适用于具有非线性反馈的LTI系统识别。文中系统阐述了短时倒谱的理论基础、计算流程与实现机制,并结合Simulink与Matlab代码实现了多个典型应用案例,涵盖非线性系统辨识、路径损耗建模、信号去噪与增强等,充分展示了该方法在系统建模与信号分析中的强大能力。研究不仅提供了完整的算法实现方案,还深入探讨了其在科研与工程实践中的广泛应用前景。; 适合人群:具备扎实的信号处理理论基础与Matlab编程能力,从事自动化、通信工程、电子工程、控制科学等领域的高校研究生、科研人员及工程技术人员。; 使用场景及目标:①实现对具有非线性反馈的LTI系统的精确建模与参数辨识,提升系统识别的准确性与鲁棒性;②在强噪声背景下进行有效的信号特征提取与时-倒频域分析,恢复信号的有效成分;③作为高级信号处理的教学与科研平台,帮助深入理解倒谱分析的物理意义及其在现代工程中的实际应用。; 阅读建议:建议读者在学习过程中紧密结合文中提供的Matlab代码与Simulink模型进行动手实践,通过调整参数、修改输入信号等方式观察分析结果的变化,以加深对算法机理的理解;同时可访问作者提供的网盘资源与完整代码包,系统性地掌握相关技术的优化与拓展方法。

62,620

社区成员

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

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