-4

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);
            }
        }
    });
4

1 に答える 1

4

新しく追加されたコンポーネントを考慮してコンテナをJLabel呼び出して更新する必要があるため、新しいコンポーネントは表示されませんrevalidate()repaint()

の使用から、setBounds絶対配置を使用しているように見えます (そうでない場合、レイアウト マネージャーはこの呼び出しに注意を払いません)。コンポーネントの配置とサイズ変更には常にレイアウトマネージャーを使用することをお勧めします..

コンテナに新しいものを追加する代わりに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);
        }
    }
});
于 2013-01-24T19:12:16.350 に答える