gpt4 book ai didi

java - 自定义 javax.swing.JFileChooser 以包含额外的 JTextField

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:44 25 4
gpt4 key购买 nike

我想在 FileChooser 中包含一个额外的(可选的)JTextField,允许用户在选择文件时填写它,而不是在他们做出选择后给他们一个额外的提示。有没有人尝试过类似的事情并找到了可行的解决方案?

我的目标结果看起来像这样:

http://imgur.com/lVMd6

最佳答案

documentedJFileChooser 添加控件的方法是通过 setAccessory(JComponent)方法。

JTextField field = new JTextField("Hello, World");
JPanel accessory = new JPanel();
accessory.setLayout(new FlowLayout());
accessory.add(field);

JFileChooser chooser = new JFileChooser();
chooser.setAccessory(accessory);
int ret = chooser.showOpenDialog(frame);

但是,这会将新控件布局在对话框的右侧(确切位置可能取决于语言环境)。

要将组件定位到您想要的位置,您可能必须遍历组件图并对其进行操作。这将是一种非常脆弱的方法,您最好构建自己的对话。

这可以包含一个文件选择器:

JFileChooser chooser = new JFileChooser();
chooser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO - wire into something
System.out.println(e);
}
});

JTextField field = new JTextField("Hello, World");

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(chooser, BorderLayout.CENTER);
panel.add(field, BorderLayout.SOUTH);

关于java - 自定义 javax.swing.JFileChooser 以包含额外的 JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com