我需要预览面板的FileDialog来显示图像。我可以使用JFileChooser来设置我需要的所有东西,唯一我找不到的是设置附件组件的位置。 我希望预览器位于文件列表和文件名称文本字段之间。我可以找到仅在文件列表右侧添加的配件组件。自定义JFileChooser在文件列表下面设置预览器
是否可以在fileList &之间设置文本文本字段?什么可以成为JFileChooser所有功能的替代选择?
我需要预览面板的FileDialog来显示图像。我可以使用JFileChooser来设置我需要的所有东西,唯一我找不到的是设置附件组件的位置。 我希望预览器位于文件列表和文件名称文本字段之间。我可以找到仅在文件列表右侧添加的配件组件。自定义JFileChooser在文件列表下面设置预览器
是否可以在fileList &之间设置文本文本字段?什么可以成为JFileChooser所有功能的替代选择?
展开我的评论:快速&脏方法是将附件组件添加到包含文件列表的组件。它是一个带有BorderLayout的FilePane类型的自定义面板,在它自己的中心列表/表格中,所以你可以在南部添加附件。在最简单的情况下(对于Metal/Nimbus),选择器的中心本身就是FilePane,下面的代码片段可以直接使用。对于其他LAF(f.i. Windows),您需要深入挖掘中心组件,直到找到列表/表的父级。
JFileChooser chooser = new JFileChooser();
JComponent panel = new JPanel();
panel.add(new JButton("my dummy Accessory"));
panel.setBackground(Color.RED);
chooser.setAccessory(panel);
JComponent center = null;
BorderLayout layout = (BorderLayout) chooser.getLayout();
for (Component child : chooser.getComponents()) {
if (BorderLayout.CENTER == layout.getConstraints(child)) {
center = (JComponent) child;
}
}
if (center != null)
center.add(panel, BorderLayout.SOUTH);
当心:
非常感谢... – Tvd
不支持 - 如果你绝望,你可能会尝试在创建之后删除/添加选择器的预览(查看ui-dele的来源看看使用哪个Layoutmanager) – kleopatra