我正在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);
}
}
答案 0 :(得分:0)
我使用不同的类只是为了遵守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);
阅读How to Use BorderLayout的Swing教程中的部分,以获取完整示例。