2016-06-06 91 views
0

我製作了一個包含3個面板的應用程序。狀態,btn和頂部面板。我有一些按鈕添加到btn面板和狀態面板中的一些標籤以及頂部面板中的一些文本字段。所有這些面板都被添加到JFrame中。我想把所有這些都放到JScroller中。我不確定如何做到這一點,任何幫助表示讚賞。我添加了一些代碼,顯示了我如何擺放所有東西。將面板添加到JScroll中

static FlowLayout topPanelLayout = new FlowLayout(); 
static GridLayout parentLayout = new GridLayout(0,1); 
static GridLayout statusLayout = new GridLayout(2,1); 
static JFrame frame = new JFrame("Web API Interface"); 
static JPanel statusPanel; 
static JPanel btnPanel; 
static JPanel topPanel;  frame.setLayout(parentLayout); 

    // -- Create Panels 
    topPanel = new JPanel(topPanelLayout); 
    statusPanel = new JPanel(statusLayout); 
    btnPanel = new JPanel(new GridLayout(0,2)); 

    frame.setSize(1100,600); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); statusPanel.add(statusLabel); 
    statusPanel.add(connectionStatusLabel); 
    statusPanel.add(cidLabel); 

    // -- add label and textfield at the top panel which is at the top of 
    // the frame 
    topPanel.add(new JLabel("Enter IP:")); 
    topPanel.add(ipAddressField); 



    // -- 1.) add top panel .... everything goes in order down 
    frame.getContentPane().add(topPanel); 
    frame.getContentPane().add(statusPanel); 
    frame.getContentPane().add(btnPanel); 
    //Display the window. 
    frame.setVisible(true); 

回答

0

JScroller

什麼是JScroller ???使用適當的類名,以便我們確切知道你在說什麼。

不要將3個面板添加到框架。

而是將3面板添加到另一個面板。然後你使用面板創建JScrollPane最後你滾動窗格添加到框架:

//frame.getContentPane().add(topPanel); 
//frame.getContentPane().add(statusPanel); 
//frame.getContentPane().add(btnPanel); 
JPanel parent = new JPanel(parentLayout); 
parent.add(topPanel); 
parent.add(statusPanel); 
parent.add(btnPanel); 
frame.add(new JScrollPane(parent)); 

而且,擺脫所有的靜態變量。如果代碼設計正確,則不需要變量是靜態的。