gpt4 book ai didi

java - 如何动态添加 JLabels 到 JPanel?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:48 24 4
gpt4 key购买 nike

我遇到了这个问题。我有一个 JPanel,通常我会像这样创建一个 JLabel:

JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(0, 0, 135, 14);
panel.add(lblNewLabel);

但我希望每次单击一个按钮时,在该面板中创建一个具有相同大小但具有不同高度位置的新 JLabel。我试过:

panel.add(new JLabel(stringName));

但这样我就无法设置它的界限。我从 JTextField 获得的 stringName。

最佳答案

首先,使用 layout .正确完成布局将放置您想要的组件。其次,当向布局动态添加组件时,您需要告诉布局进行更新。这是一个示例,每次按下按钮时它都会添加一个标签:

public static void main(String[] args) {

final JFrame frame = new JFrame("Test");
frame.setLayout(new GridLayout(0, 1));

frame.add(new JButton(new AbstractAction("Click to add") {
@Override
public void actionPerformed(ActionEvent e) {

SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.add(new JLabel("Bla"));
frame.validate();
frame.repaint();
}
});
}
}));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
frame.setVisible(true);
}
});
}

关于java - 如何动态添加 JLabels 到 JPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com