我写了一个使用按钮播放广播到互联网的电台的课程。 当按下按钮时,我还希望有选择地隐藏和显示框架中的一系列图像。
我试图通过添加图片,设置" 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();
}
答案 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"));