So here's the class and the super class, question to follow:
TestDraw:
package project3;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestDraw extends MyShape
{
public static void main(String[] args)
{
DrawPanel panel = new DrawPanel();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(300,300);
application.setVisible(true);
JLabel southLabel = new JLabel(toString());
application.add(southLabel, BorderLayout.SOUTH);
}
}
MyShape:
package project3;
import java.awt.Color;
public class MyShape
{
private int x1, y1, x2, y2;
private Color myColor;
public MyShape()
{
setX1(1);
setY1(1);
setX2(1);
setY2(1);
setMyColor(Color.BLACK);
}
public MyShape(int x1, int y1, int x2, int y2, Color myColor)
{
setX1(x1);
setY1(y1);
setX2(x2);
setY2(y2);
setMyColor(myColor);
}
public void setX1(int x1)
{
if(x1 >= 0 && x1 <= 300)
{
this.x1 = x1;
}
else
{
this.x1 = 0;
}
}
public int getX1()
{
return x1;
}
public void setY1(int y1)
{
if(y1 >= 0 && y1 <= 300)
{
this.y1 = y1;
}
else
{
this.y1 = 0;
}
}
public int getY1()
{
return y1;
}
public void setX2(int x2)
{
if(x2 >= 0 && x2 <= 300)
{
this.x2 = x2;
}
else
{
this.x2 = 0;
}
}
public int getX2()
{
return x2;
}
public void setY2(int y2)
{
if(y2 >= 0 && y2 <= 300)
{
this.y2 = y2;
}
else
{
this.y2 = 0;
}
}
public int getY2()
{
return y2;
}
public void setMyColor(Color myColor)
{
this.myColor = myColor;
}
public Color getMyColor()
{
return myColor;
}
public String toString()
{
return String.format("X1: %d, X2: %d, Y1: %d, Y2: %d, Color: %s", getX1(), getX2(),
getY1(), getY2(), getMyColor());
}
}
In the class TestDraw, I was trying to put the toString from MyShape into a text box on a window, but when I did the "JLabel southLabel = new JLabel(toString());" it told my toString() needs to be static. That's all fine and dandy except when you make toString static it wants to make the gets in that string static, which is bad...any ideas?
I've tried putting the toString() in the superclass but it gives the same issue, tried asking the teacher but he says "Look in the book" Well...been two hours of reading the chapter and I've yet to find an example after my third read through.
Thank you in advance!
PS: Answer is nice, but explanation is preferred!