【问题标题】:Picture changing in Java GUIJava GUI中的图片更改
【发布时间】:2014-03-02 06:51:07
【问题描述】:

所以我正在用 java 制作一个 GUI。 假设我有一个 Constructor 方法,比如说

        public class glmb extends JLabel implements ActionListener {
           public glmb(){
            Container C= getContentPane();
            C.setLayout(null);
                    myLabel.setBounds(0,0,30,30);
                    myLabel.setBounds(30,0,30,30);
            C.add(myLabel);
            C.add(myButt);
            MyButt.addActionListener(this);
                   setSize(400,400);
                   setVisible(true);
           }}

我在类中有一个带有 ImageIcon 的 JLabel:

           JLabel myLabel =new JLabel(new ImageIcon("mypic1.jpg"));

一个带有 Action Listener 的按钮,这将使 JLabel myLabel 改变图片:

             if(e.getSource()==myButt)
             { myLabel =new JLabel(new ImageIcon("mypic2.jpg")); setSize(50,50);}

按下按钮后如何在 JFrame 中更改图片,按钮工作是因为框架改变了大小(参见 setSize(50,50))?谢谢你!!!这里还是java新手,哈哈

【问题讨论】:

  • 您更改了对 myLabel 的引用,它不再指向屏幕上的内容,所以无论您对它做什么,它都不会改变屏幕上的内容。相反,只需使用对 myLabel 的引用并使用 setIcon 来更改其图像。
  • 空布局很少是构建动态和可移植用户界面的答案,因为每个系统都有自己的字体指标和渲染差异。您应该考虑根据需要使用适当的布局管理器或复合布局,并让 API 处理这些脏细节
  • MadProgrammer,我不明白你在说什么(我高中 14 岁),是的,但是说 setSize 有效,框架改变了它的大小,那么,我该如何添加JLabel 到容器(见上图)。我在容器中添加了标签,然后将图像设置为可见。如何在同一个容器中再次添加 JLabel?
  • 你没有。您已经在屏幕上显示了 JLabel,您只需更改已有实例的属性
  • 怎么样?(对不起,这里还是新手。顺便说一句,感谢您的耐心等待)

标签: java swing jframe jlabel imageicon


【解决方案1】:

而不是使用

myLabel =new JLabel(new ImageIcon("mypic2.jpg"));

使用

myLabel.setIcon(new ImageIcon("mypic2.jpg"));

如果我理解正确,这应该对你有用。

【讨论】:

  • 是的!!!非常感谢你!!!!在这里编程还是新手,非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多