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

   }

Но панелът за превъртане не се появява. Защо е тат??


person Siva Subramaniam    schedule 08.04.2012    source източник
comment
Добавете ScrollPane. Например: java2s.com/Tutorial/Java/0240__Swing/   -  person Anonymous    schedule 08.04.2012
comment
Трябва да добавите вашия обект за превъртане към вашия JFrame, като извикате this.add(scroll).   -  person dexametason    schedule 08.04.2012
comment
Защо добавихте код, който не можа да се компилира? За по-добра помощ по-рано, публикувайте SSCCE . Но тогава току-що разбрах, че това ви беше споменато преди.   -  person Andrew Thompson    schedule 08.04.2012
comment
Съжалявам, @AndrewThompson.. Моят е голям проект.. и се опитах да направя всичко възможно да го направя SSCCE.. ще публикувам нещо, което може да се компилира..   -  person Siva Subramaniam    schedule 08.04.2012


Отговори (2)


Защото не добавяте JScrollPane към вътрешната рамка.

Вие всъщност добавяте Board към JInternalFrame 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);
person Jack    schedule 08.04.2012
comment
Искам обекта на дъската вътре в 'cir'.. и добавих cir.add(scroll).. но все още не се вижда.. - person Siva Subramaniam; 08.04.2012

моля, задайте cir.setVisible(true) и cir.add(scroll) вместо cir.add(b);

Ако искате вашите ленти за превъртане да са видими през цялото време, можете да използвате

scroll = JScrollPane(b,
  ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
  ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS)
person Nitin Chhajer    schedule 08.04.2012