JScrollPane不起作用..为什么?

时间:2012-04-08 18:36:20

标签: java swing layout jscrollpane

我有一个有两个内部框架的框架。我创建了一个'Board'对象,它是Board类的一个实例。 Board类扩展了JPanel。

class Layout extends JFrame{
   Dimension dimen=Toolkit.getDefaultToolkit().getScreenSize();
   public initializeWindows(){
       JInternalFrame dev=new JInternalFrame("Devices",true,true,false,false);
       JInternalFrame cir=new JInternalFrame("Circuit",true,true,false,false);
       Board b=new Board();
       cir.add(b);
       JScrollPane scroll=new JScrollPane(b);
       this.add(dev);
       this.add(cir);

       dev.setVisible(true);
       dev.setSize(150,650);
       dev.setLocation(0,100);
       dev.pack();

       inf.setVisible(true);
       inf.setPreferredSize(new Dimension((int)(dimen.width*0.88),(int)(dimen.height*0.75)));
       inf.setLocation(150,100);
       inf.setBackground(Color.WHITE);
       inf.pack();

   }

但滚动窗格没有出现。为什么是这个?

2 个答案:

答案 0 :(得分:1)

因为您没有将JScrollPane添加到内部框架。

您实际上是将Board添加到JInternalFrame cirJScrollPane,而您应该执行类似

的操作
JInternalFrame cir=new JInternalFrame("Circuit",true,true,false,false);
Board b=new Board();
JScrollPane scroll=new JScrollPane(b);
cir.add(scroll)
this.add(cir);

答案 1 :(得分:1)

请设置cir.setVisible(true)cir.add(scroll)而不是cir.add(b);

如果您希望滚动条始终可见,则可以使用

scroll = JScrollPane(b,
  ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
  ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS)