JPanel的Scrollpane?

时间:2010-08-21 13:14:53

标签: java swing

我想将Scrollpane添加到JPanel,而JPanel又由另一个jpanel调用?

 public class test {

    JFrame jframe;
    JPanel jpanel;
    JScrollPane js= null;
    public void createFrame()
    {
        jframe=new JFrame("Thick client Wallboard");
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        jframe.setSize(dim.width,dim.height);
        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jframe.setUndecorated(true);
        jframe.setResizable(false);         
        jframe.setLocation(0, 0);
        getJContentPane();
        jframe.setContentPane(jpanel);
        jframe.setVisible(true);
    }
    public void getJContentPane()
    {

        jpanel = new JPanel();
        jpanel.setBackground(new Color(0x505050));
        jpanel.setLayout(null);
        jpanel.setFont(new Font("verdana",Font.BOLD,12));
        jpanel.setBorder(new LineBorder(Color.BLACK,2));
        getpanel();
        jpanel.add(js);
        jpanel.setBackground(Color.LIGHT_GRAY);
        jpanel.setVisible(true);


    }
    public void getpanel()
    {

        JPanel mainPanel=new JPanel();
        mainPanel.setBounds(50,50,920,650);
        mainPanel.setBackground(Color.WHITE);
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));  

        for(int i = 0; i < 30; i++) {  
            mainPanel.add(new JButton("Button " + i));  
        }
        js=new JScrollPane(mainPanel);

    }


    public static void main(String[] args) {

      test t=new test();
      t.createFrame();
    }

}

我这样做但是没有用......

2 个答案:

答案 0 :(得分:3)

JScrollPane与所有JComponent衍生物一样,是一个装饰器,你可以用它装饰任何组件。

您可以将任何组件放在滚动窗格中。

JScrollPane pane = new JScrollPane(component);

只需添加滚动窗格而不是包装组件。

答案 1 :(得分:3)

你可以这样做:

public static void main(String[] args) {
    Frame frame = new JFrame();  

    JPanel panel = new JPanel();  
    panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));  

    for(int i = 0; i < 20; i++) {  
      panel.add(new JButton("Button " + i));  
    } 

    //Creating JScrollPane with JPanel
    JScrollPane scrollPane = new JScrollPane(panel);
    JPanel otherPanel = new JPanel();
    otherPanel.setLayout(new BorderLayout());
    //Adding scrollPane to panel
    otherPanel.add(scrollPane);
    frame.add(otherPanel);  

    frame.setSize(200,200);  
    frame.setVisible(true);     

}

同时检查: http://www.coderanch.com/t/342486/GUI/java/Adding-ScrollPane-JPanel