Sha*_*ane 8 java jfilechooser jpanel fileopendialog
我正在编写一个需要文件打开对话框的java程序.文件打开对话框并不难,我希望使用一个JFileChooser
.我的问题是我希望有一个双窗格JFrame
(由2组成JPanels
).左侧面板将具有一个JList
,右侧面板将具有文件打开对话框.
当我使用JFileChooser.showOpenDialog()
它时,打开所有其他窗口上方的对话框,这不是我想要的.有没有办法让JFileChooser
(或者可能是另一个文件选择对话框)显示在一个JPanel
而不是弹出窗口上面?
这是我尝试过的代码,此时它非常简单.我只是试图将JFileChooser
其嵌入到JPanel
此处.
public class JFC extends JFrame{
public JFC()
{
setSize(800,600);
JPanel panel= new JPanel();
JFileChooser chooser = new JFileChooser();
panel.add(chooser);
setVisible(true);
chooser.showOpenDialog(null);
}
public static void main(String[] args)
{
JFC blah = new JFC();
}
}
Run Code Online (Sandbox Code Playgroud)
我也打过电话chooser.showOpenDialog
与this
和panel
,但无济于事.此外,我已经尝试JFileChooser
直接添加到框架.上面列出的两种尝试仍然JFileChooser
在框架或面板前面弹出(取决于我添加JFileChooser
到的).
Ste*_*Kuo 10
JFileChooser扩展了JComponent和Component,因此您应该能够将它直接添加到您的框架中.
JFileChooser fc = ...
JPanel panel ...
panel.add(fc);
Run Code Online (Sandbox Code Playgroud)
小智 5
要访问文件选择器中的"按钮",您必须向其添加一个ActionListener:
fileChooser.addActionListener(this);
[...]
public void actionPerformed(ActionEvent action)
{
if (action.getActionCommand().equals("CancelSelection"))
{
System.out.printf("CancelSelection\n");
this.setVisible(false);
this.dispose();
}
if (action.getActionCommand().equals("ApproveSelection"))
{
System.out.printf("ApproveSelection\n");
this.setVisible(false);
this.dispose();
}
}
Run Code Online (Sandbox Code Playgroud)