我有一个JPanel
和JButton
上JFrame
。
在运行时添加JLabel
到JPanel
单击时JButton
。
我使用以下代码:
panel.setLayout(null);
jLabel _lbl=new jLabel();
_lbl.setText("Label");
panel.add(_lbl);
panel.validate();
但没有显示任何JLabel
在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 line
panel.add(_lbl);//add label we made
panel.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);
}
}
在运行时添加到当单击时。 我使用以下代码: 但是在中没有显示任何。
问题内容: 如何将行添加到numpy数组? 我有一个数组A: 如果X中每行的第一个元素满足特定条件,我希望从另一个数组X向该数组添加行。 Numpy数组没有像列表那样的“追加”方法,或者看起来。 如果A和X是列表,我只会这样做: 是否有 numpythonic的 方法可以做到这一点? 谢谢,S ;-) 问题答案: 什么啊 如果它是一个二维数组,你怎么能那么其行比作一个号码:? OP评论后编辑: 从
问题内容: 我收到以下错误,因为Java 11排除了JavaFX作为最新版本的一部分。 那么如何在Java 11中将JavaFX添加到Eclipse?谢谢。 问题答案: 按照入门指南,这些是从Eclipse运行JavaFX 11的必需步骤。 1安装Eclipse 2018-09 。 2安装JDK 11 。 3将Java 11作为已安装的JRE添加到Eclipse:Eclipse->窗口->首选项-
问题内容: 我正在尝试向JTable中的特定列添加滚动功能。我已经实现了一个自定义的TableCellRenderer组件,并且可以看到表中的滚动窗格很好,但是我无法滚动它。我也尝试实现TableCellEditor,但没有任何运气。 有谁知道如何使包含scrollPane的单元格可滚动? 问题答案: 使用TableCellRenderer不可能添加任何滚动行为,因为它不接收任何事件,仅绘制组件。
我知道ApplicationContext扩展点,如ApplicationContext事件和BeanFactoryPostProcessor。 我手头的问题是,在创建了一些bean之后,我需要添加bean,我想这会丢弃BeanFactoryPostProcessor选项,因为在应用程序上下文开始注册bean之前会发生这种情况。 我尝试在上下文刷新后添加一个singletonBean:
问题内容: 我想尽可能使用Java代码将jar文件动态添加到我的项目的类路径中,我想使用外部jar文件并加载其类,以便稍后将其作为Beans执行(Spring框架)。 谢谢 :) 问题答案: URLClassLoader child = new URLClassLoader (myJar.toURL(), this.getClass().getClassLoader()); Class class