在运行时将组件添加到jpanel

在运行时将组件添加到jpanel,第1张

在运行时将组件添加到jpanel

我看到您创建了一个

JLabel
名为
_lbl

 JLabel _lbl=new JLabel();

但您永远不会将其添加到面板中。相反,您将

JLabel
没有文本的新内容添加到面板中:

 panel.add(new JLabel());

当然,这将构造一个不可见的空标签。

添加类似后,还尝试在您的实例上调用

revalidate()
repaint()
,如下所示:
JPanel``JLabel

JLabel _lbl=new JLabel("Label");//make label and assign text in 1 linepanel.add(_lbl);//add label we madepanel.revalidate();panel.repaint();

这样,您可能还需要调用

pack()
您的框架实例,以便调整大小
Jframe
以适合新组件。

另外,请不要使用

null
/
Absolute
布局,这是非常糟糕的做法(除非制作动画),并且可能会出现问题并且很难使用。

而是使用

LayoutManager

  • 布局管理器的可视指南

或者,如果您仅在

JPanel
简单调用中只有一个组件
add(label);
,则它将扩展到该
JPanel
大小。

更新:

这是一个小样本。只需

JLabel
JPanel
每次
JButton
按下时将s加:

import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class JavaApplication116 {    public static void main(String[] args) {        SwingUtilities.invokeLater(new Runnable() { @Override public void run() {     new JavaApplication116().createAndShowUI(); }        });    }    private void createAndShowUI() {        Jframe frame = new Jframe("Test");        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        initComponents(frame);        frame.setResizable(false);        frame.pack();        frame.setVisible(true);    }    private void initComponents(final Jframe frame) {        final JPanel panel = new JPanel(new FlowLayout());        JButton button = new JButton("Add label");        button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {     JLabel _lbl = new JLabel("Label");//make label and assign text in 1 line     panel.add(_lbl);//add label we made     panel.revalidate();     panel.repaint();     frame.pack();//so our frame resizes to compensate for new components }        });        frame.getContentPane().add(panel, BorderLayout.CENTER);        frame.getContentPane().add(button, BorderLayout.SOUTH);    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5104520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存