Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用不带GridLayout的JPanels在JFrame上绘制圆和线_Java_Swing_Jframe_Jpanel - Fatal编程技术网

Java 使用不带GridLayout的JPanels在JFrame上绘制圆和线

Java 使用不带GridLayout的JPanels在JFrame上绘制圆和线,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,目前,我正试图在画布上画一条线和一个圆(将变成动画,就像一个轮子) 我有一个名为WheelAnimation()的构造函数 在这个构造函数中,我有两个实现类,第一个是圆: class CircleComponent extends JComponent { private static final long serialVersionUID = 1L; public void paintComponent(Graphics g) { Graphics2D

目前,我正试图在画布上画一条线和一个圆(将变成动画,就像一个轮子)

我有一个名为
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(newgridlayout(1,1))

我可以显示这两个项目(尽管它们的格式不好)

但是,如果我删除
setLayout
方法,尽管坐标保持不变,但帧上不会显示任何内容

有人能告诉我为什么会发生这种情况,并给我一个建议,如何设置这些布局,使它们显示出来

我可以显示这两个项目(尽管它们的格式不好)

使用布局管理器时,它负责设置添加到配电盘的构件的尺寸和位置


如果不使用布局管理器,则应用程序代码负责设置每个组件的大小和位置。

我理解该部分(布局管理器确定每个组件在框架内的位置)。但是,如果我删除布局管理器,就不会显示任何内容。@thegreencolla,你读过我的答案吗???您是否设置了每个组件的大小和位置???抱歉!到目前为止,我在
组件和
组件中都使用了
.setBounds()
,但没有显示任何内容。我想我做错了。@thegreencolla,yes,setBounds()也可以。张贴你的文章,说明问题所在。