【发布时间】:2015-02-04 21:11:41
【问题描述】:
关于您的评论更改添加公共显示(图形g)
[链接]http://www3.canyons.edu/Faculty/biblej/project6.html
1.)Project6 类必须扩展 JFrame 类 2.)Project6 构造函数必须设置 GUI 窗口。 3.)一种新的抽象方法:public void display(Graphics g);应该添加到基类和派生类中 4.)必须使用paintComponent方法设置自定义JPanel 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);
//那么这里需要添加Graphics 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);
例如,这是其中一个类,我是否像这样将其添加到末尾?我需要向 Shape 父类添加一个公共抽象 void display(Graphics 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); }
【问题讨论】:
-
当我的意思是添加图形 gi 意味着将其添加到数组 [i].display(GRAPHICS G) 中,我还需要 display() 来读取但我不知道如何将两者放在一起因为它只是说它找不到图形 g 符号
标签: java swing graphics jframe jpanel