我想显示一个textArea显示一些文本(将显示日志行),并在其上方有一个动画gif。我尝试了here描述的解决方案,但我得到的只是灰色屏幕。提示?
public class TestLayeredPanes {
private JFrame frame = new JFrame();
private JLayeredPane lpane = new JLayeredPane();
public TestLayeredPanes() {
frame.setPreferredSize(new Dimension(600, 400));
frame.setLayout(new BorderLayout());
frame.add(lpane, BorderLayout.CENTER);
//Build the animated icon
JLabel buildingIcon = new JLabel();
buildingIcon.setIcon(new ImageIcon(this.getClass().getResource(
"/com/ct/tasks/cmviewer/gui/progress_bar.gif")));
JPanel iconPanel = new JPanel();
iconPanel.add(buildingIcon);
//Build the textArea
JTextArea textLog = new JTextArea("Say something");
JPanel textPanel = new JPanel();
textPanel.add(new JScrollPane(textLog));
//Add the panels to the layered pane
lpane.add(textPanel, 0);
lpane.add(iconPanel, 1);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new TestLayeredPanes();
}
}
答案 0 :(得分:1)
尝试将动画GIF放在根窗格的玻璃窗格上:
http://download.oracle.com/javase/tutorial/uiswing/components/rootpane.html
答案 1 :(得分:1)
答案 2 :(得分:1)
既然你开始使用一个工作示例,为什么要从你复制的例子中删除代码行?
分层窗格不使用布局管理器,因此组件的大小为(0,0),因此无需显示任何内容。示例中的setBounds(...)方法是有原因的。