首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java JFileChooser 顯示異常:錯誤將對話框添加到 JFrame 中

     編輯:程式設計綜合問答

使用 JFileChooser 時,若誤將其作為組件 add 到 JFrame,會導致對話框內嵌在窗口中顯示異常(非彈出模態)。本文說明正確用法。

錯誤代碼

JFileChooser jfc = new JFileChooser();
this.add(jfc); // ❌ 錯誤:將文件選擇器當作普通組件添加到幀
jfc.showOpenDialog(null);

正確代碼

JFileChooser jfc = new JFileChooser();
// this.add(jfc); // 刪除這行
int result = jfc.showOpenDialog(this); // 參數為父組件,用於居中定位
if (result == JFileChooser.APPROVE_OPTION) {
  File selected = jfc.getSelectedFile();
  // 處理文件...
}

關鍵點

  • JFileChooser 是對話框,非普通容器組件
  • showOpenDialog(Component parent) 參數指定父窗口,null 表示無父窗口(屏幕居中)
  • 返回值判斷用戶操作:APPROVE_OPTION(確定)、CANCEL_OPTION(取消)、ERROR_OPTION(出錯)

常用配置

jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);        // 只選文件
jfc.setMultiSelectionEnabled(false);                       // 單選
jfc.setFileFilter(new FileNameExtensionFilter("圖片", "jpg","png","gif")); // 過濾器
jfc.setCurrentDirectory(new File(System.getProperty("user.home"))); // 初始目錄

記住:對話框類(JFileChooser、JColorChooser、JOptionPane 等)不要 add 到容器,直接調用 showXxxDialog 即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved