如何使用Runnable方法将JPanel添加到JFrame

时间:2016-04-21 19:07:58

标签: java graphics jframe jpanel runnable

当我创建一个JPanel并将其添加到我的JFrame并将我的画布添加到它(空间)时,它将只显示JPanel而不是任何图形。为什么它只显示JPanel,当我希望它同时显示它们时?

源代码:http://pastebin.com/Cw9E0a8j

2 个答案:

答案 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