【发布时间】:2015-03-12 14:21:04
【问题描述】:
当我想向面板添加标签时,它不会出现,直到调整框架大小。它不更新。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Actions_GUI
{
JFrame frame;
JPanel panel;
JButton button;
JLabel label;
Actions_GUI()
{
frame = new JFrame();
frame.setSize(400,300);
frame.setTitle("WHY ?");
panel = new JPanel();
panel.setBackground(Color.black);
button = new JButton(" WHY ?");
这是在主面板上创建标签的事件。
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
label=new JLabel(" Why Don't Upadate? ");
label.setForeground(Color.magenta);
panel.add(label);
}
});
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}
public static void main(String [] args)
{
Actions_GUI object = new Actions_GUI();
}
}
【问题讨论】:
-
尝试添加
panel.invalidate()强制面板更新。 -
这篇文章很有用:stackoverflow.com/questions/3718435/…。使用框架布局(如边框布局)以及管理组件位置的面板。
-
@MarkoŽivanović,谢谢,我试过“panel.revalidate()”,这是解决问题的方法,谢谢
标签: java swing jframe jpanel jbutton