Java Swing-无法使用边框布局正确显示内容,也会出现非法组件位置错误
我刚刚编写了一个简单的代码,其中我希望画布显示在JFrame的中心,配置面板显示在同一JFrame的北部。但是在添加它们之后,“画布”根本不会显示。如果我只添加画布,它会显示,但一旦添加配置面板,它就不会再显示 此外,如果我试图在同一JFrame的南部添加其他内容,无论发生什么,我都会得到一个非法的组件位置错误 说到挥杆,我是个十足的傻瓜。如果答案很明显,我很抱歉,但在过去的几个小时里,我一直在用谷歌搜索和研究这个问题,但没有任何运气 以下是我尝试过的:Java Swing-无法使用边框布局正确显示内容,也会出现非法组件位置错误,java,swing,jframe,layout-manager,Java,Swing,Jframe,Layout Manager,我刚刚编写了一个简单的代码,其中我希望画布显示在JFrame的中心,配置面板显示在同一JFrame的北部。但是在添加它们之后,“画布”根本不会显示。如果我只添加画布,它会显示,但一旦添加配置面板,它就不会再显示 此外,如果我试图在同一JFrame的南部添加其他内容,无论发生什么,我都会得到一个非法的组件位置错误 说到挥杆,我是个十足的傻瓜。如果答案很明显,我很抱歉,但在过去的几个小时里,我一直在用谷歌搜索和研究这个问题,但没有任何运气 以下是我尝试过的: public class MainFra
public class MainFrame extends JFrame {
ConfigPanel configPanel;
ControlPanel controlPanel;
DrawingPanel canvas;
public MainFrame() {
super("My Drawing Application");
init();
}
private void init() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
canvas = new DrawingPanel(this);
configPanel = new ConfigPanel(this);
controlPanel=new ControlPanel(this);
add(canvas,CENTER);
add(configPanel,NORTH);
add(controlPanel,SOUTH); //this gives me a illegal component position error
pack();
}
}
所有行都应该有错误。我不知道为什么这是唯一突出的一个。代码应为:
add(controlPanel, BorderLayout.SOUTH);
首选约束是使用:BorderLayout.PAGE\u END。有关更多信息和工作示例,请阅读上Swing教程的部分
此外,没有理由将框架传递给构造函数中的面板。如果出于某种原因需要知道面板的框架,可以在框架可见后调用Swingutilites.windowForComponent…方法
所有行都应该有错误。我不知道为什么这是唯一突出的一个。代码应为:
add(controlPanel, BorderLayout.SOUTH);
首选约束是使用:BorderLayout.PAGE\u END。有关更多信息和工作示例,请阅读上Swing教程的部分
此外,没有理由将框架传递给构造函数中的面板。如果出于某种原因需要了解面板的框架,可以在框架可见后调用Swingutilites.windowForComponent…方法。请尝试getContentPane.addcontrolPanel,SOUTH;而不是addcontrolPanel,SOUTH
对您提供的代码中的每个组件执行此操作 请尝试getContentPane.addcontrolPanel,SOUTH;而不是addcontrolPanel,SOUTH
对您提供的代码中的每个组件执行此操作 框架的add…方法将为您将组件添加到内容窗格中。框架的add…方法将为您将组件添加到内容窗格中。