Java JScrollPane不';t在构造函数中显示提供的组件
JScrollPane没有显示我在其构造函数中放置了什么组件Java JScrollPane不';t在构造函数中显示提供的组件,java,swing,Java,Swing,JScrollPane没有显示我在其构造函数中放置了什么组件 panel = new JPanel(); panel.setLayout(new GridLayout(1, 1)); JButton button = new JButton("button"); panel.add(button); scroll = new JScrollPane(panel); scroll.setBounds(0, 0, 300, 300); parent.add(scroll); 除
panel = new JPanel();
panel.setLayout(new GridLayout(1, 1));
JButton button = new JButton("button");
panel.add(button);
scroll = new JScrollPane(panel);
scroll.setBounds(0, 0, 300, 300);
parent.add(scroll);
除此之外,所有父布局都设置为null,因为它必须使用布局管理器,对吗?疯狂的是,当我在一个简单的程序中编写这个代码时,它可以工作,但是如果我试着在我的实际程序中添加这个代码,除了我在它的构造函数中插入的面板,所有的事情都是正常的,只有边框,JScrollBar的背景出现了,我还注意到,如果我只是直接将面板添加到父组件中,即使我将布局设置为GridLayout,它仍然会将其设置为null。。有人能帮我吗。问题解决了
panel.revalidate();
panel.repaint();
pane.revalidate();
pane.repaint();
如果你不发表一篇文章,就很难确定有什么特别的问题。JScrollPane的父JPanel必须有一个Swing布局管理器。所有JPanel都应该有一个Swing布局管理器。所有父布局都设置为空-为什么?Swing设计用于布局管理器。当我在一个简单的程序中编写这个代码时,它可以工作,但是如果我尝试在我的实际程序中添加这个。。。。这就是问题所在。随着代码变得越来越复杂,布局也变得越来越复杂,其中一个空布局会导致问题。学习按设计的方式使用Swing,避免潜在问题。