我在使用'JFileChooser'Swing對象的開發計算機上啓動任何應用程序時遇到問題。當我最初開發應用程序並進行測試時,File Chooser窗口打開並且一切都很好,但是像一個星期後,我嘗試再次運行該應用程序,根本沒有任何顯示。JFileChooser啓動問題
起初我還以爲這是一個線程問題(我原來的應用程序使用了一點多線程),所以我應付並粘貼下面的代碼(我從網上得到的代碼)來測試它:
package com.kwm.util.test;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
final JFrame frame = new JFrame("JFileChooser Demo");
final JFileChooser fc = new JFileChooser();
fc.setMultiSelectionEnabled(true);
fc.setCurrentDirectory(new File("C:\\tmp"));
JButton btn1 = new JButton("Show Dialog");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fc.showDialog(frame, "Choose");
}
});
JButton btn2 = new JButton("Show Open Dialog");
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int retVal = fc.showOpenDialog(frame);
if (retVal == JFileChooser.APPROVE_OPTION) {
File[] selectedfiles = fc.getSelectedFiles();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < selectedfiles.length; i++) {
sb.append(selectedfiles[i].getName() + "\n");
}
JOptionPane.showMessageDialog(frame, sb.toString());
}
}
});
JButton btn3 = new JButton("Show Save Dialog");
btn3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fc.showSaveDialog(frame);
}
});
Container pane = frame.getContentPane();
pane.setLayout(new GridLayout(3, 1, 10, 10));
pane.add(btn1);
pane.add(btn2);
pane.add(btn3);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
而且我什麼都看不到。我猜測機器有問題,但無法確定問題所在。
任何幫助,這將不勝感激。
編輯1 操作系統的版本是Windows Server 2003企業版,SP1
的Java版本:1.5.0_12(JDK和JRE兩者)
我也怕,這可能是與網絡問題有關...... JFileChooser正在查找網絡目錄,並且DNS可能存在衝突。有沒有辦法檢查這個?也許檢查什麼JVM記錄?
如果你懷疑你的系統是罪魁禍首,關於你的電腦的信息可能是有用的。 (OS?JRE版本?等) – coobird 2011-05-07 11:15:06
可能不是造成直接問題的原因,但應該在EDT上構建Swing GUI。 – 2011-05-07 11:37:38
@Andrew:你的意思是'應該在EDT上構建Swing GUI。 「?一個URL會有幫助..請注意,上面的代碼片段僅用於測試問題是來自我的原始應用程序還是與機器相關的原因。謝謝。 – 2011-05-07 11:42:34