【问题标题】:How to add JLabel at run time in Swing?如何在 Swing 运行时添加 JLabel?
【发布时间】:2014-02-14 02:05:06
【问题描述】:

我正在 Java 上制作窗口应用程序。 我想在运行时在我的 Swing 应用程序中添加标签名称。如何使用 Java Swing 做到这一点?

public class Component1 extends JPanel {

   Component1() {
      JLabel label = new JLabel("dd");
      label.setBounds(370, 340, 150, 20);
     // label.setText("labeVVl");
      add(label);
}

 public static void main(String[] args)
 {
    // create frame
    JFrame frame = new JFrame();
    final int FRAME_WIDTH = 800;
    final int FRAME_HEIGHT = 600;
    // set frame attributes
    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
    frame.setTitle("My Frame");
    frame.setVisible(true);
    Component1 Com = new Component1();
    Component add = frame.add(Com);
}
}

【问题讨论】:

  • 您不想在运行时添加JLabel,而是想更改JLabel 的文本。两者都是相似的,并且已经有很多现有的questions 处理这个问题。
  • 请参阅this answer 以获取提示。左下角的标签是动态添加的。
  • 1) Java GUI 可能必须在多个平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于组件的精确放置。要为强大的 GUI 组织组件,请改用布局管理器或 combinations of them,以及 white space 的布局填充和边框。 2) 源代码中的一个空白行总是就足够了。 { 之后或} 之前的空行通常也是多余的。
  • 顺便说一句。在添加文本之前,JLabel 将不可见。您可以在启动时添加标签,然后在运行时为其设置文本。

标签: java swing layout jlabel layout-manager


【解决方案1】:
  1. 此代码应通过添加revalidate()repaint() 作为LayoutManager 的通知程序来工作

  2. 不要使用NullLayout,使用为JPanel in AP实现的默认FlowLayout我也是这样做的

  3. Initial Thread

  4. for example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2011-03-28
    • 1970-01-01
    • 2012-12-19
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多