我正在尝试使用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);
}
}
});
答案 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}}