繁体   English   中英

秋千布局显示不正确

[英]Swing Layout not showing properly

我在Swing中制作GUI,作为布局,我使用不同的类只是为了遵守MVC结构。

在Main.class中,我在Swing中进行了布局,以显示MenuBar和Toolbar,它运行得很好,但是却不能正确显示。 我唯一注意到的是JToolBar的“边框”,但是我没有在其中放置任何按钮,这使我认为将其正确输出到正确的Panel / Frame时存在问题。

    JFrame frame = new JFrame("Title");
    JPanel panel = new JPanel();

    frame.setJMenuBar(new MenuBar());

    JToolBar toolbar = new ToolBar();


    GroupLayout panelLayout = new GroupLayout(panel);
    panel.setLayout(panelLayout);
    panelLayout.setHorizontalGroup(
            panelLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGap(0, 0, Short.MAX_VALUE)
    );
    panelLayout.setVerticalGroup(
            panelLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGap(0, 400, Short.MAX_VALUE)
    );

    GroupLayout layout = new GroupLayout(frame.getContentPane());
    frame.getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(panel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(toolbar, GroupLayout.DEFAULT_SIZE, 900, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                            .addComponent(panel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(toolbar, GroupLayout.PREFERRED_SIZE, 39, GroupLayout.PREFERRED_SIZE)
                            .addContainerGap(22, Short.MAX_VALUE))
    );

    frame.pack();
    frame.setLocationRelativeTo (null); // Center on screen.
    frame.setVisible(true);
}

}

我使用不同的类只是为了遵守MVC结构。

因此,无需使用其他类。 这不是MVC的重点。

我唯一注意到的是JToolBar的“边框”,但是我没有在其中放置任何按钮

好吧,我们真的无济于事,因为我们不知道您的ToolBar类做什么。

我的建议是忘记使用IDE生成GUI代码。 生成的代码无法读取且无法维护。

如果您手动创建GUI,那么您要做的就是这么简单。

要显示工具栏,基本代码为:

frame.add(new ToolBar(), BorderLayout.PAGE_START);

与IDE生成的所有代码相比,这就是一行代码。

然后对于主面板,您将拥有:

JPanel panel = new JPanel();
panel.add( someComponent );
frame.add(panel, BorderLayout.CENTER);

阅读Swing教程中有关如何使用BorderLayout的部分 ,以获取完整示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM