很少用到swing方面的东西,最近在写程序的时候遇到一个问题,特请教大家。 我的代码如下: JScrollPane leftPanel=new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); JTree tree=new JTree(); leftPanel.add(tree);
//leftPanel.setViewportView(tree); tree已经通过其他代码实现了里面的内容,这里只是为了方便简单表述一下。 后面的JFrame的显示等也不写了。 我的问题是这里的树显示的问题,如果我用leftPanel.add(tree)这个函数则tree不显示,但是如果我用leftPanel.setViewportView(tree)则树就能显示,可是以前做的很多程序,加JTable、JLabel、JTextArea等都是用add()函数,都没有问题,可是JTree就不行了,原因是什么? add()函数和setViewportView()的区别在哪里?
//leftPanel.setViewportView(tree); tree已经通过其他代码实现了里面的内容,这里只是为了方便简单表述一下。 后面的JFrame的显示等也不写了。 我的问题是这里的树显示的问题,如果我用leftPanel.add(tree)这个函数则tree不显示,但是如果我用leftPanel.setViewportView(tree)则树就能显示,可是以前做的很多程序,加JTable、JLabel、JTextArea等都是用add()函数,都没有问题,可是JTree就不行了,原因是什么? add()函数和setViewportView()的区别在哪里?
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate(),以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。 看看api吧,上面都有的