繁体   English   中英

将Jlabel添加到Java Applet

[英]Adding Jlabel to java applet

我使用以下代码向Java小程序添加标签。 这些行在paint(Graphics g)方法中:

ImageIcon icon = new ImageIcon(s);
JLabel myLabel = new JLabel(icon);
add(myLabel);

当我调用add(myLabel)时,屏幕将被清除,而我之前绘制的所有内容都将消失。 为什么?

这些行在paint(Graphics g)方法内部:

您永远不要在paint()方法中向GUI添加组件。

另外,如果您需要自定义绘画,则应该重写paintComponent()而不是paint()。

我建议您阅读Swing教程 关于以下内容:

  1. 如何使用标签
  2. 进行定制绘画

可以帮助您。

Using Layout Managers器还有一个环节。 我不知道它是什么免费设计,但我怀疑您应该使用它。

只是添加@camickr所说的内容。

切勿在paint方法上添加组件。 每次绘制组件时,都会执行以下代码

ImageIcon icon = new ImageIcon(s);
JLabel myLabel = new JLabel(icon);
add(myLabel);

这样,您可以100%确保在每次绘制组件时都添加新的JLabel时,某个时候内存将耗尽。 创建父组件时,应添加标签。 如果您想在应用程序中制作动画,那么建议您加载这些图像并将它们放在一个List ,您可以从paintComponent方法访问该List

List<JLabel> images = new ArrayList<JLabel>();
// populate images when the application needs them...
// ...
@Override
public void paintComponent(Graphics g){
   // get the image your want to draw
   JLabel imageToDraw = images.get(imageIndex);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM