2012-06-19 2 views
0

У меня есть фрагмент кода, в котором TestClass расширяет jPanel, который использует SpringLayout, в котором я не могу добавить вертикальную полосу прокрутки.Как добавить вертикальную полосу прокрутки в Jpanel, которая имеет SpringLayout в Java?

Не могли бы вы помочь мне, ребята?

 


     public class TestClass extends JPanel { 

      private SpringLayout layout; 
      private Spring s, sprWest; 
      private JComboBox comboDevice = new JComboBox(); 
      private JComboBox comboCommand = new JComboBox(); 
      private JLabel lblDevice = new JLabel("Select the Device:"); 
      private JLabel lblCommand = new JLabel("Select Command:"); 
      private JButton btnCommand = new JButton("Save"); 

      public TestClass() { 
       layout = new SpringLayout(); 
       s = Spring.constant(0, 60, 60); 
       setLayout(layout); 
      } 

      public void populateFields(){ 
       add(lblCommand); 
       add(comboCommand); 


       sprLblEast = Spring.sum(s, Spring.max(layout.getConstraints(lblCommand).getWidth(), layout.getConstraints(lblDevice).getWidth())); 
       Spring strut = Spring.constant(10); 

       layout.putConstraint(SpringLayout.NORTH, lblCommand, strut, SpringLayout.SOUTH, comboDevice); 
       layout.putConstraint(SpringLayout.NORTH, comboCommand, strut, SpringLayout.SOUTH, comboDevice); 
       layout.putConstraint(SpringLayout.EAST, lblCommand, sprLblEast, SpringLayout.WEST, this); 
       layout.putConstraint(SpringLayout.WEST, comboCommand, Spring.sum(s, layout.getConstraints(lblCommand).getWidth()), SpringLayout.WEST, lblCommand); 
       layout.putConstraint(SpringLayout.EAST, this, sprLblEast, SpringLayout.WEST, comboCommand); 

       List cmdList = getCommandList(); 
       for (int index = 0; index < cmdList.size(); index++) { 
        comboCommand.addItem(cmdName); 
       } 
       validate(); 
       repaint(); 
      } 
    } 

 

ответ

0

Я бы sugest использование ScrollPane

ScrollPane mainWindow = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED); mainWindow.add(this);

, но Вы должны использовать другой объект, чем Ваш TestClass, как взгляд, здесь было бы mainWindow.

Вы также можете использовать JScrollPane от Swing: tutorial for JScrollPane