2012-04-08 50 views
0

我有一個框架有兩個內部框架。我創建了一個Board委員會對象,這是Board委員會的一個實例。 Board類擴展了JPanel。JScrollPane不起作用。爲什麼?

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(); 

    } 

但是沒有出現滾動窗格。爲什麼是tat?

+0

添加'ScrollPane'。例如:http://www.java2s.com/Tutorial/Java/0240__Swing/AddcomponenttoJScrollPane.htm – Anonymous 2012-04-08 18:38:56

+0

您應該通過調用this.add(scroll)將您的滾動對象添加到您的JFrame中。 – dexametason 2012-04-08 18:39:46

+0

爲什麼您添加**無法編譯的代碼?**爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。但後來我才意識到,已經提到你[之前](http://stackoverflow.com/questions/9767652/accessing-a-line-after-it-is-painted)。*** – 2012-04-08 18:46:08

回答

1

因爲您沒有將JScrollPane添加到內部框架。

你實際上是添加BoardJInternalFrame cir,並在JScrollPane,而你應該做的像

JInternalFrame cir=new JInternalFrame("Circuit",true,true,false,false); 
Board b=new Board(); 
JScrollPane scroll=new JScrollPane(b); 
cir.add(scroll) 
this.add(cir); 
+0

我想在'cir'內的板對象..我加了cir。添加(滾動)..但它仍然不可見.. – 2012-04-08 18:46:34

1

請將cir.setVisible(true)cir.add(scroll)代替cir.add(b);

的東西,如果你希望你的滾動條是所有時間都可以使用

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