关于您要更改的注释添加公共显示(图形g)
[链接]http://www3.canyons.edu/faculty/biblej/project6.html
1.)Project6类必须扩展JFrame类2.)Project6构造函数必须设置GUI窗口3.)一个新的抽象方法:public void display(Graphics g);应该添加到基和派生类4.)一个自定义JPanel必须使用paintComponent方法5.)新的display(Graphics g)方法必须在GUI窗口上绘制形状并从paintComponent方法中的循环调用
public class Project6 extends JFrame {
//project6 constructor without parameters to set up new JFrame
public Project6() {
add(new NewPanel());
}
class NewPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//所以我需要在这里添加图形g吗?还是没有?
for(int i = 0; i < thearray.length && thearray[i] != null; i++) {
thearray[i].display(**Graphics g**);
}}}
public static void main (String [] args) {
JFrame frame = new JFrame();
frame.setSize(800, 700);
frame.setTitle("Shapes");
frame.setLocationRelativeTo(null); //Center Frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
这里有一个类的例子,我是不是这样加到最后?我是否需要在形状父类中添加一个公共抽象虚空显示(图形g)?它如何调用project6类?
public class Rectangle extends Shape {
private int width;
private int height;
public Rectangle() {
setWidth(0);
setHeight(0);
setXPos(0);
setYPos(0);}
public Rectangle(int xPos, int yPos, int height, int width) {
setWidth(xPos);
setHeight(yPos);
setXPos(height);
setYPos(width);}
public int getWidth() {
return width;}
public void setWidth(int width) {
this.width = width;}
public int getHeight() {
return height;}
public void setHeight(int height) {
this.height = height;}
@Override
public void display() {
System.out.println("Rectangle: (" + getXPos() + ", " + getYPos() + ") " + " Height: " + height + " Width: " + width);}
@Override
public void display(Graphics g) {
g.drawRect(getXPos(), getYPos(), width, height); }
一种新的抽象方法:公共虚空显示(图形g);应添加到基础和派生类中
您没有正确执行此步骤,因为我注意到您调用了theArray[I].display();
而display
的目的是要有一个参数。
如果您正确创建了display
方法,那么您将得到可以使用的Graphics对象,例如:
class Line extends Shape {
int x1, y1, x2, y2;
@Override
public void display(Graphics g) {
g.drawLine(x1, y1, x2, y2);
}
}
问题内容: 该程序的目的是单击以创建圆,ballball类扩展了test1,当test1检测到鼠标单击时,即创建了ballball对象。但是paint / paintComponent方法永远不会执行。在我的程序结构中,是否可以将圆圈绘制到超类JPanel? 问题答案: 不是,它没有可以覆盖的方法。相反,您可以扩展a 并将其添加到框架中。
在试图制作一个非常简单的子弹地狱游戏来学习java时,我遇到了一个障碍: repaint()没有调用油漆组件()。 这是整个程序,目前只需将我每秒创建50次的图像绘制到JFrame上的JPanel上。 在使用断点和println方法进行了一些调试之后,我可以确认正在读取正确的图像,gameTimerAction中的计时器每秒被调用50次,并且repaint()根本没有调用paintComponen
主要内容:1 Java JFrame的介绍,2 Java JFrame的内部类,3 Java JFrame的字段,4 Java JFrame的构造方法,5 Java JFrame的方法,6 Java JFrame的案例1 Java JFrame的介绍 javax.swing.JFrame类是一种继承java.awt.Frame类的容器。JFrame的工作原理类似于主窗口,其中添加了标签,按钮,文本字段等组件以创建GUI。 与Frame不同,JFrame可以选择使用setDefaultCloseO
问题内容: 我试图绘制一个简单的矩形,但我认为paintComponent方法没有被调用。这是带有main方法的类的代码: 和带有paintComponent()的类 这是什么问题,我不知道… 问题答案: 虽然已经提供的答案可能会导致出现矩形,但这种方法并非最佳。此示例旨在显示一种更好的方法。阅读代码中的注释以获取详细信息。 请注意,应该在EDT上启动Swing / AWT GUI。这留给读者练习
问题内容: From the original question (below), I am now offering a bounty for the following: An based solution for rounded corners. Please demonstrate with a . Corners must be completely transparent. Must
问题内容: 我想将JApplet转换为JFrame。我在互联网上找到了一个单词搜索游戏的代码。我想在一个类的演示中使用此代码。但我不想在applet中使用它。我要在此处粘贴的代码大约有7,000个字符。我尝试使用JApplet并扩展JFrame,然后将所有用于初始化的代码放入构造函数(零自变量构造函数)中。这导致大约十个我无法解决的错误。我想制作一个单词搜索游戏,并且找到了一个很好的例子,但是我无