将面板添加到JScroll

时间:2016-06-06 19:43:23

标签: java swing

我做了一个有3个面板的应用程序。状态,btn和顶部面板。我在btn面板中添加了一些按钮,状态面板中有一些标签,顶部面板中有一些文本字段。所有这些面板都添加到JFrame中。我想把所有这些都放到JScroller中。我不确定如何做到这一点,任何帮助表示赞赏。我添加了一些代码,显示我是如何将所有内容都放好的。

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

1 个答案:

答案 0 :(得分: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 ) );

另外,摆脱所有静态变量。如果代码设计得当,则不需要变量是静态的。