setVisible(true)不显示内容

时间:2015-01-26 01:15:18

标签: java swing button jlabel visible

我的代码中有一些标签,在按下按钮之前我不想显示。我在所有标签和按钮的动作监听器中放置.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);

            }
        });

2 个答案:

答案 0 :(得分:1)

目前还不清楚你使用什么作为绘制的父组件,但我认为它是'面板'。视图没有被更新,所以你需要在父组件上调用repaint(),这将在它的所有子组件上调用paint。

btnGet.addActionListener
    (new ActionListener () {
        public void actionPerformed(ActionEvent e) {
            lblPressure2.setVisible(true);
            panel.repaint();
        }
    });

答案 1 :(得分:1)

而不是在动作侦听器中使用.setVisible(true)。我将标签内容留空并在动作监听器中使用了.setText并且它有效。