[英]Combine JFileChooser in the middle of JFrame
我正在用Java編寫一個微型程序,該程序將管理計算機中的文件。 我嘗試通過創建面板並將其放在框架的中間,將JFileChooser.showSaveDialog()置於框架的中間:
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(150,150) );
JFileChooser chooseFile = new JFileChooser();
chooseFile.showSaveDialog(panel);
frame.getContentPane().add(BorderLayout.CENTER,panel);
frame.setSize(400,400);
frame.setVisible(true);
但是實際上,當執行showSaveDialog()命令時,該框架變得不可見。 我可以改變嗎?
不是JFrame不可見,而是它從未設置為可見 。 我假設您希望在調用showSaveDialog()時JFrame可見。 由於缺乏細節,這是我必須提供的:
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
javax.swing.JPanel panel = new javax.swing.JPanel();
panel.setPreferredSize(new java.awt.Dimension(150,150) );
javax.swing.JFileChooser chooseFile = new javax.swing.JFileChooser(); frame.getContentPane().add(java.awt.BorderLayout.CENTER,panel);
frame.setSize(400,400);
frame.setVisible(true);
chooseFile.showSaveDialog(panel);
編輯:我重讀了您的問題,並認為您可能想將JFileChooser放在該問題的面板上是模棱兩可的。 您可能想要這樣:
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
javax.swing.JPanel panel = new javax.swing.JPanel();
panel.setPreferredSize(new java.awt.Dimension(150,150) );
javax.swing.JFileChooser chooseFile = new javax.swing.JFileChooser(); frame.getContentPane().add(java.awt.BorderLayout.CENTER,panel);
chooseFile.setPreferredSize(new java.awt.Dimension(400, 400));
frame.setSize(400,440);
frame.setVisible(true);
panel.add(chooseFile);<br><br>
保存對話框FileChooser是模式對話框。 這意味着當我們調用chooseFile.showSaveDialog(panel);
文件對話框將成為焦點,並且用戶在關閉對話框之前無法與面板交互。 這通常是我們想要的行為。
如果我們要創建某種文件管理器,那么也許您想嘗試將JFileChooser添加到面板中。 由於JFileChooser擴展了組件,因此您可以執行此操作,但是它需要更多的代碼以及對swing的更多理解。 這樣的問題解決了向JPanel添加JFileChooser。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.