使用setVisible方法隐藏和显示图像

时间:2014-12-17 23:46:48

标签: java image swing jframe jlabel

我写了一个使用按钮播放广播到互联网的电台的课程。 当按下按钮时,我还希望有选择地隐藏和显示框架中的一系列图像。

我试图通过添加图片,设置" setVisible(false);"然后在单击按钮时覆盖setVisible方法。 它在目前的状态下是不可行的。有没有办法做到这一点?

我很擅长编写代码。

public void actionPerformed(ActionEvent e)
{
  JButton button = (JButton)e.getSource();
  String  text   = button.getText();

  JLabel img = new JLabel(new ImageIcon("resources/1920.png"));
  img.setBounds(642, 230, 100, 100); // x, y, width, height
  add(img);
  img.setVisible(false);

  if (text.equals("1920a"))
  {
     try
     {
       getMediaPlayer().setURI(mediaPaths[0]); 
       img.setVisible(true);

     }
     catch (URISyntaxException e1)
     {
        e1.printStackTrace();
     }

1 个答案:

答案 0 :(得分:1)

每次按下按钮,您都会创建一个JLabel的新实例并将其添加到屏幕上,但是您没有跟踪它们......

// Yet ANOTHER label...which one it is, nobody knows...
JLabel img = new JLabel(new ImageIcon("resources/1920.png"));
img.setBounds(642, 230, 100, 100); // x, y, width, height
add(img);
img.setVisible(false);

如果您一次只想在屏幕上显示一个图像,那么只需更改单个标签的图标标签即可...

首先为图片声明一个实例字段......

public class ... {
    //...
    private JLabel pictureLabel;

将标签添加到屏幕...

public ... { // Public constructor
    //...
    pictureLabel = new JLabel();
    add(pictureLabel);

现在,当您想要更改图片时,只需更改标签的图标属性...

pictureLabel.setIcon(new ImageIcon("resources/1920.png"));