如何在GUI上将所选文件的名称显示为JLabel

时间:2013-01-24 19:06:13

标签: java swing file-io awt java-io

我正在尝试使用showOpenDialog选择文件,我想在GUI上将所选文件的名称设置为JLabel。 我写了这段代码,但它不起作用..任何人都可以告诉我正确的方法吗?

    b3.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            final JFileChooser fc = new JFileChooser();
            int returnVal = fc.showOpenDialog(fc);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                String fileName= file.getName();
                l6 = new JLabel(fileName);
                l6.setBounds(50, 315, 70, 20);
                p.add(l6);
            }
        }
    });

1 个答案:

答案 0 :(得分:4)

新的JLabel未显示,因为您需要调用revalidate()repaint()来更新容器以考虑新添加的组件。

从您使用setBounds开始,您似乎正在使用绝对定位(如果没有,布局管理器将不理会此次调用)。 始终更好地使用layout manager进行定位&调整组件..

您只需在现有setText上拨打JLabel,而不是向容器添加新的b3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); int returnVal = fc.showOpenDialog(fc); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); String fileName = file.getName(); l6.setText(fileName); } } });

{{1}}