Я пытался сделать объект и пытался
используя .getWidth и .getHeight, но
не могу заставить его работать.
Это потому, что вы не устанавливаете поля ширины и высоты в JFrame, но вы устанавливаете их для локальных переменных. Поля ВЫСОТА и ШИРИНА наследуются от ImageObserver
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
См
http://java.sun.com/javase/6/docs/api/javax/swing/JFrame.html
Если ширина и высота представляют состояние фрейма, то вы можете реорганизовать их в поля и написать для них геттеры.
Затем вы можете создать конструктор, который получит оба значения в качестве параметров
public class DrawFrame extends JFrame {
private int width;
private int height;
DrawFrame(int _width, int _height){
this.width = _width;
this.height = _height;
//other stuff here
}
public int getWidth(){}
public int getHeight(){}
//other methods
}
Если значение widht и высота будут постоянными (после создания), вам следует использовать модификатор final . Таким образом, если им присвоено значение, их нельзя изменить.
Кроме того, переменные, которые я использую в
DrawCircle, я должен иметь их в
конструктор или нет?
То, как оно написано сейчас, позволит вам создать один тип круга . Если вы не хотите создавать разные круги, вам следует перегрузить конструктор одним с аргументами).
Например, если вы хотите изменить атрибуты xPoint и yPoint, у вас может быть конструктор
public DrawCircle(int _xpoint, int _ypoint){
//build circle here.
}
РЕДАКТИРОВАТЬ:
Where does _width and _height come from?
Это аргументы для конструкторов. Вы устанавливаете значения для них при вызове метода Constructor.
В DrawFrame я устанавливаю ширину и высоту.
В DrawCircle мне нужно получить доступ к
ширина и высота DrawFrame. Как
Я делаю это?
DrawFrame(){
int width = 400;
int height =400;
/*
* call DrawCircle constructor
*/
content.pane(new DrawCircle(width,height));
// other stuff
}
Теперь, когда конструктор DrawCircle будет выполнен, он получит значения, которые вы использовали в DrawFrame, как _width и _height соответственно.
EDIT:
Попробуйте сделать
DrawFrame frame = new DrawFrame();//constructor contains code on previous edit.
frame.setPreferredSize(new Dimension(400,400));
http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html