Что касается Вашего комментария, чтобы изменить добавить публичный показ (Graphics г)JAVA, GUI JPanel, JFrame, paintComponent, Графика
[ссылка] http://www3.canyons.edu/Faculty/biblej/project6.html
1.) Project6 класс должен будет расширить класс JFrame 2.) Конструктор Project6 должен будет настроить окно GUI. 3.) Новый абстрактный метод: public void display (Graphics g); должен быть добавлен к базовому и производным классам 4.) Пользовательский JPanel должен быть настроен с помощью метода paintComponent 5.) Новый метод отображения (Graphics g) должен будет нарисовать фигуры в окне графического интерфейса пользователя и вызываться из петля в методе 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);
Вот один из классов, например, добавьте его до конца так? и мне нужно добавить публичный абстрактный экран void (Graphics g) в родительский класс Shape? и как бы он вызвал в классе 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); }
Когда я имею в виду, добавив Графика ГИ означает, добавив его в thearray [я]. (GRAPHICS G), и мне также нужно, чтобы дисплей() читал, но я не уверен, как установить оба вместе, потому что он просто говорит, что он не может найти графический символ g –