目前我正在尝试在画布上画一条线和一个圆圈(它会像轮子一样动画制作)。
我有一个名为WheelAnimation()
的构造函数。
在这个构造函数中,我有两个实现类,第一个是圆:
class CircleComponent extends JComponent
{
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
for(int i = 0; i < 200; i++)
{
// repaint();
g2.fillOval(i, 50, 50, 50);
}
}
}
final CircleComponent component2 = new CircleComponent();
panel.add(component2);
这将在圆圈下划线:
class LineComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
g2.drawLine(120, 120, 380, 120);
}
}
final LineComponent component = new LineComponent();
panel.add(component);
如果我使用setLayout
方法,例如:panel.setLayout(new GridLayout(1, 1));
我可以让两个项目显示出来(虽然它们的格式不好)。
http://puu.sh/8fm9B/4f1dc1d0e5.png
但是如果删除setLayout
方法,尽管坐标保持不变,但我的框架上没有任何内容显示出来。
有人能告诉我为什么会这样,并就如何设置这些布局并让它们出现给我一个建议吗?
答案 0 :(得分:0)
我可以让两个项目显示出来(虽然它们的格式不好)。
使用布局管理器时,它负责设置添加到面板的组件的大小和位置。
如果您不使用布局管理器,那么您的应用程序代码负责设置每个组件的大小和位置。