当08-10 14:01:05.007 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
08-10 14:01:05.007 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <html>
08-10 14:01:05.007 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <head>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <title>Index of /Comments/Cross/1</title>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ </head>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <body>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <h1>Index of /Comments/Cross/1</h1>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <ul><li><a href="/Comments/Cross/"> Parent Directory</a></li>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ <li><a href="%25!Emilio%25Gaines!%25466376720196163289492.txt"> %!Emilio%Gaines!%466376720196163289492.txt</a></li>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ </ul>
08-10 14:01:05.008 5655-5655/com.emiliogaines.mopedshowcase E/My :﹕ </body></html>
设置为false时,我很难从JFileChooser
获取文件。
如果用户选择了现有文件,我可以使用setControlButtonsAreShown()
获取此文件,但是当他们键入新文件名时,getSelectedFile()
将返回null。
当我使用getSelectedFile()
JFileChooser
并点击“保存”按钮时,可以按预期使用setControlButtonsAreShown(true)
获取用户输入的任何文件名,但getSelectedFile()
时使用我似乎无法恢复此文件。
即使我调用了setControlButtonsAreShown(false)
,也会发生这种情况,如果它已经显示,则可能与单击“保存”按钮的情况相同。
我做错了什么?或者将approveSelection()
打开按钮操作事件分配给自定义个人JfileChooser
的任何其他方式?
答案 0 :(得分:0)
这是我提出的解决方法。
这将遍历FileChooser
Container
中的所有组件,并从JTextField
获取文本并在FileChooser
中设置为选择
点击一下按钮或任何事件后调用此方法。
private void failProofSetPath(JFileChooser chooser) {
File selectedFileFromTextBox = null;
String text = getTextOfFileViewer(chooser);
if (text != null && new File(text).exists()) {
selectedFileFromTextBox = new File(text);
}
if (selectedFileFromTextBox != null
&& (chooser.getSelectedFile() == null
|| !selectedFileFromTextBox.equals(chooser.getSelectedFile()))) {
chooser.setSelectedFile(selectedFileFromTextBox);
}
}
private String getTextOfFileViewer(Container c) {
int len = c.getComponentCount();
for (int i = 0; i < len; i++) {
Component comp = c.getComponent(i);
if (comp instanceof JTextField) {
JTextField b = (JTextField) comp;
return b.getText();
} else if (comp instanceof Container) {
String val = getTextOfFileViewer((Container) comp);
if (val != null) {
return val;
}
}
}
return null;
}