2013-09-19 4 views
0

Я хочу добавить вертикальную полосу прокрутки на мой JFrame с null макет.Как добавить прокрутку в JFrame с нулевой компоновкой?

Возможно ли это или нет? пожалуйста помоги!

+1

да ни один вопрос не прочитал официальный Oracle учебник Как использовать ScrollPanes для примера работы очень хорошо объясняется, как, где, когда работает JScrollPane (отображается панель JScrollbar) – mKorbel

+3

Начните с использования менеджера макетов ... – MadProgrammer

+0

Java GUI, возможно, придется работать на онемение на платформах, на разных разрешениях экрана и использовании разных PLAF. Таким образом, они не способствуют точному размещению компонентов. Чтобы организовать компоненты для надежного графического интерфейса, вместо этого используйте менеджеров компоновки или [их комбинаций] (http://stackoverflow.com/a/5630271/418556), а также макеты и границы для [пробела] (http: //stackoverflow.com/q/17874717/418556). –

ответ

6

Просто установите JScrollPane как ContentPane для JFrame как описано here:

public class TabbedPaneTest { 
    public static void main(String [] a) { 
     final JFrame frame = new JFrame(); 
     frame.setSize(500, 500); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 

     frame.setContentPane(pane); 

     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 
2

В Eclipse IDE вы можете использовать следующий код

import java.awt.Dimension; 
import java.awt.EventQueue; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JLabel; 

public class Test { 

    private JFrame frame; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        Test window = new Test(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public Test() { 
     initialize(); 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel container = new JPanel(); 
     JScrollPane jsp = new JScrollPane(container); 
     container.setPreferredSize(new Dimension(500, 250)); 
     container.setLayout(null); 

     JLabel lblHelloWorld = new JLabel("Hello World"); 
     lblHelloWorld.setBounds(10, 11, 101, 14); 
     container.add(lblHelloWorld); 

     frame.getContentPane().add(jsp); 
    } 
} 
+0

Спасибо @Bishwa Ranjan Timilsina, работал на меня! ура! –

 Смежные вопросы

  • Нет связанных вопросов^_^