当在子类中重写它时,调用油漆组件方法将其定义为超类的重要性是什么。我无法理解原因。例如:请参阅下面的代码以显示填充的弧:
package graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
@SuppressWarnings("serial")
class DrawArcs2 extends JFrame {
public DrawArcs2() {
setTitle("The Four Fan Blades");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
add(new BladesPanel());
}
class BladesPanel extends JPanel {
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.MAGENTA);
int xCenter = getWidth() / 2;
int yCenter = getHeight() / 2;
int radius = (int)(Math.min(getWidth(), getHeight()) * 0.4);
int x = xCenter - radius;
int y = yCenter - radius;
g.fillArc(x, y, 2 * radius, 2 * radius, 0, 30);
g.fillArc(x, y, 2 * radius, 2 * radius, 90, 30);
g.fillArc(x, y, 2 * radius, 2 * radius, 180, 30);
g.fillArc(x, y, 2 * radius, 2 * radius, 270, 30);
}
}
public static void main(String[] args) {
DrawArcs2 fanBlades = new DrawArcs2();
fanBlades.setSize(300,300);
fanBlades.setVisible(true);
}
}
通常它很重要。如果不声明它,它包含的大多数对象将无法访问。它有点像一个对象。您需要声明它才能调用该类的其他函数。
简短的回答是肯定的,这很重要。
绘图组件
的工作之一是为绘图准备Graphics
上下文,这通常是通过用当前组件的背景颜色填充Graphics
上下文来完成的。
但是,更重要的是,它是形成绘制方法链的方法之一,这些方法一起生成绘制结果,您应该继续保持该链接,以防将来更改绘制组件方法,或者您扩展的组件对其进行其他处理(例如,如JTable)
未能调用它可能会导致任何数量的图形故障和伪影,这些故障和伪影难以跟踪,甚至难以可靠地生成
看看绘画在AWT和摆动和执行自定义绘画有关绘画过程的更多细节
问题内容: 有什么作用(特别是当我们将其放入paintComponent()方法中时)?令我惊讶的是,我之前没有人问过这个问题。 我在Java Graphics上挖了我的学校笔记,在这行代码中唯一提到的是。 但是,这几周来,我一直在练习和使用Java paintComponent()方法。到目前为止,我还没有将该行包含在我的代码中,并且一切似乎都运行良好(到目前为止)。所以.. 问题: 它有什么作
做什么(特别是当我们将它放在paintComponent()方法中时)?我很惊讶以前没有人问过这个问题。 我翻出我关于Java图形的学校笔记,它在这行代码上唯一提到的是。 然而,这几周我一直在练习和学习Java的paintComponent()方法。到目前为止,我还没有将这一行包含在我的代码中,而且一切似乎都运行得很好(到目前为止)。所以.. 问题: 它做什么? 何时需要使用它? 在paintCo
问题内容: 假设我有以下情况: 和 然后首先访问,进入然后通知它并返回状态。调用在方法中的位置重要吗?即使将调用放置在方法内部的不同位置,我也没有注意到行为的变化。 拨打电话时,是否应立即通知? 问题答案: 该位置的内通话块并 不会 因为根据定义无所谓,如果你仍然在块,那么你仍然持有锁。 调用notify()时不应该立即通知线程吗? 是。调用将等待队列(等待条件)中的线程之一(如果有)放入阻塞队列
问题内容: 我对几件事有些困惑: 示例代码,显示了我的问题,这是无法编译的 我创建了一个全局对象, 并在其中绘制了内容 ,但我没有在游戏循环内调用 它,这样做是否是一种好习惯? 我应该在循环和函数内部使用吗? 另一件事,如何正常工作?,因为尝试删除此行代码,因此没有任何反应。 我了解java docs的dispose()的工作方式 , 但是我没有注意到dispose()与否的任何区别。 我的程序运
问题内容: 假设我有以下课程: 我想知道是否传递以下构造函数很重要: 我当前的代码工作正常,但是我想知道这是否是一个好习惯。 问题答案: 根据React团队的Ben Alpert的说法,如果您打算在构造函数内部使用,则仅需要将prop传递给构造函数。调用构造函数后,React从外部将props附加到组件。
我知道其他人问过这个(或类似的)问题,但没有一个解决方案对我有帮助。我有3节课: 我的测试类: 我想验证B. subMethod()是否在A. superMethod()中被调用。我如何才能完成此任务。我知道我需要使用PowerMock来完成此任务,但我不确定如何。此外,我不允许更改有关A类或B类的任何内容。 任何帮助都将不胜感激!