- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个非常简单的问题。我正在学习Java,并被分配画一辆汽车。我在一个扩展 JPanel
的类中完成了这一切,并在 paintComponent()
中完成了绘图。
我意识到这是糟糕的面向对象编程,并决定尝试对某些部分进行子类化以纠正这种情况。
我尝试创建一个画轮子的类,但没有成功。
本质上,我希望能够做到这一点:
Main Class extends JPanel
paintComponent{
Wheel leftWheel = new Wheel(0, 50, 100);
this.add(leftWheel);
}
这应该在 JPanel
中的点 (0, 50) 处绘制一个轮子,其直径为 100。
但是,我不确定我应该如何控制 JPanel
中的定位。当我这样做时,轮子被绘制在我窗口的顶部中心。这就是我的 wheel 类的样子:
public class Wheel extends JComponent {
private int x, y, diameter;
private boolean clockwise;
Wheel(int x, int y, int size, boolean cw)
{
this.setPreferredSize(new Dimension(size, size));
this.x = x;
this.y = y;
diameter = size;
clockwise = cw;
repaint();
}
public void paintComponent(Graphics canvas)
{
super.paintComponent(canvas);
canvas.setColor(Color.gray);
canvas.fillOval(x,y,diameter,diameter);
}
}
x 和 y 应该在它出现在父窗口的位置,但是,在下面的代码中不是这样(位于扩展 JFrame 的父类中):
Wheel leftWheel = new Wheel(0,0,WHEEL_DIAMETER,true);
this.add(leftWheel);
滚轮不是绘制在我窗口的左上角,而是绘制在我窗口顶部的中央。我做错了什么吗?抱歉,如果我不遵循一些 Java 约定,我还没有任何经验。这是我应该如何处理车轮的绘图,还是有更可接受的做法来进行这种类型的绘图?
例如,在我的JPanel
类中,如果我添加以下代码:
Wheel x = new Wheel(50,60,75,true);
this.add(x);
我得到一个尺寸为 75x75 的框架,其中在 that 框架内的点 (50,60) 处绘制了一个轮子(尺寸为 75x75),而不是在父级 JPanel
内的坐标系。结果是一个被剪裁的圆圈,我只看到圆圈的左上角。该图像显示在我的 JPanel
我了解如何绘制轮子并在其内部移动它,但如何将轮子定位在 JPanel
上??
最佳答案
你的构造函数有一个小错误,
Wheel(int x, int y, int size, boolean cw) {
this.setPreferredSize(new Dimension(size, size));
diameter = size;
clockwise = cw;
repaint();
}
您忘记存储 x
和 y
。我想你想要,
Wheel(int x, int y, int size, boolean cw) {
this.x = x;
this.y = y;
this.setPreferredSize(new Dimension(size, size));
diameter = size;
clockwise = cw;
repaint();
}
因为你的x
和y
不设置的话都是0。
关于java - 画一个汽车轮子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921445/
从下面的 setup.py 文件中,我试图从一个应该只包含 python 2.7 代码的项目中创建一个纯 python wheel。 from setuptools import setup setu
我正在尝试在 Linux 上安装 pytorch ( http://pytorch.org/ ),根据我的机器配置,我应该运行的命令是: pip 安装 https://s3.amazonaws.com
也许是一个广泛的问题,但我认为这与任何使用 github 并可以显着减少他们的工作量的 python 包维护者相关,所以希望这些权力能够让它站住脚。 基本上,在我看来: 为 python 构建和发布轮
我有一个包含 C 扩展的包,我想上传到 pypi:https://github.com/Erotemic/netharn 我使用命令 python setup.py bdist_wheel --py-
TLDR :裤子获取 OS X 特定的轮子,因为我正在 Mac 上开发。我怎样才能避免这种情况,或者指定我将部署到 Ubuntu? 全文 : 尝试使用 Pants 打包 Python 应用程序。到目前
我正在 Azure Pipelines 上运行测试(但同样的情况也适用于 Travis 和 Appveyor)。我有一个 Python 包,我们将其称为“计算器”,其中包含 cython 扩展。当我推
是否有(事实上的)标准 MIME 类型可用于 Python 轮包?我在 PEP 427 中看不到任何内容。 我认为 application/zip 可能是一个选项,但这似乎误导了我。 最佳答案 没有。
我一整天都在为 --find-links 苦苦挣扎,如果有人能在这里帮助我,我将非常感激。 我一直在使用python3.4进行开发,我添加的新功能之一使用Azure存储(最新版本),它需要加密,这需要
之前,我们仅将内部 pip 存储库用于源代码分发。展望 future ,我们还希望托管轮子来完成两件事: 为(本地)开发人员机器和 Alpine Docker 环境提供我们自己的代码 为没有 Alpi
我是一名优秀的程序员,十分优秀!