我的代码中有一些标签,在按下按钮之前我不想显示。我在所有标签和按钮的动作监听器中放置.setVisable(false),在所有标签上放置.setVisable(true)。当我运行程序并按下按钮时,标签不会出现。
这是标签之一
try{
lblPressure2 = new JLabel(toolKit.getPressure(selectedTown.toLowerCase()));
lblPressure2.setBounds(322, 114, 61, 14);
lblPressure2.setVisible(false);
panel.add(lblPressure2);
}catch(Exception e){e.printStackTrace();}
这是我的按钮
btnGet = new JButton("Show Me The Weather");
btnGet.setBounds(119, 71, 176, 24);
innerP.add(btnGet);
btnGet.addActionListener
(new ActionListener () {
public void actionPerformed(ActionEvent e) {
lblPressure2.setVisible(true);
}
});
答案 0 :(得分:1)
目前还不清楚你使用什么作为绘制的父组件,但我认为它是'面板'。视图没有被更新,所以你需要在父组件上调用repaint(),这将在它的所有子组件上调用paint。
btnGet.addActionListener
(new ActionListener () {
public void actionPerformed(ActionEvent e) {
lblPressure2.setVisible(true);
panel.repaint();
}
});
答案 1 :(得分:1)
而不是在动作侦听器中使用.setVisible(true)。我将标签内容留空并在动作监听器中使用了.setText并且它有效。