当我创建一个JPanel并将其添加到我的JFrame并将我的画布添加到它(空间)时,它将只显示JPanel而不是任何图形。为什么它只显示JPanel,当我希望它同时显示它们时?
答案 0 :(得分:1)
如果您想在jPanel中添加画布,请尝试更改源中的以下行
原始代码:
frame.add(p);
frame.add(space, BorderLayout.CENTER);
建议代码:
p.add(space);
frame.add(p, BorderLayout.CENTER);
如果您愿意在JFrame中同时查看JPanel和画布,请尝试给画布定位。但是不同的布局会做得更好。试试给出的例子。
原始代码:
frame.setLayout(new BorderLayout());
frame.add(p);
frame.add(space, BorderLayout.CENTER);
建议代码1: 通过在边框布局中向JPanle提供位置。
frame.setLayout(new BorderLayout());
frame.add(p, BorderLayout.NORTH);
frame.add(space, BorderLayout.CENTER);
建议代码2: 通过更改JFrame的布局。
frame.setLayout(new GridLayout(0,2));
frame.add(p);
frame.add(space);
有关更多信息,请参阅官方文档[1]。
[1]。 https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html
答案 1 :(得分:0)
解决方案非常简单。在您的代码中,您将“空间”放在窗口的中心,因此您告诉它占据整个屏幕。你应该做的就是这个。
frame.add(p, BorderLayout.EAST);//EAST for the rigth
frame.add(space, BorderLayout.WEST);//WEST for the left