我做了一个有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);
答案 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 ) );
另外,摆脱所有静态变量。如果代码设计得当,则不需要变量是静态的。