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()也可以。张贴你的文章,说明问题所在。