2012-04-08 6 views
0

私は2つの内部フレームを持つフレームを持っています。私は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

+0

this.add(スクロール)を呼び出すことによって、JFrameにスクロールオブジェクトを追加する必要があります。 – dexametason

+0

**コンパイルできなかったコードを追加したのはなぜですか**より早い時期に役立つようにするには、[SSCCE](http://sscce.org/)を投稿してください。しかし、その後私はちょうど***あなたに言及されていることを実現しました。(http://stackoverflow.com/questions/9767652/accessing-a-line-after-it-is-painted)*** –

答えて

1

JScrollPaneを内部フレームに追加していないためです。

あなたが実際にBoardあなたのスクロールバーになりたい場合は、

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を追加しました。追加(スクロール)..しかし、それはまだ表示されません.. –

1

設定してくださいcir.setVisible(true)cir.add(scroll)の代わりcir.add(b);

ような何かをする必要がありながらJInternalFrame cirにしてJScrollPaneに追加しますいつでも見ることができます

scroll = JScrollPane(b, 
    ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, 
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS) 
関連する問題