Затмение не показывает вывод
Я делаю 2D-рисование на Eclipse Oxygen, в моем коде нет ошибок, но почему он не показывает никакого вывода. Я имею в виду, когда я нажимаю Run, прогресса нет.
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
import java.awt.geom.Rectangle2D;
public class HOUSE1 extends Frame {
public void paint(Graphics2D g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawString("HOME SWEET HOME",80,60);
setBackground(Color.white);
Arc2D arc1 = new Arc2D.Double(250,50,500,300,225,90,Arc2D.Double.PIE);
g2d.draw(arc1);
g2d.setColor(Color.red);
g2d.fill(arc1);
Rectangle2D rect = new Rectangle2D.Double(325,300,350,300);
g2d.draw(rect);
g2d.setColor(Color.blue);
g2d.fill(rect);
Rectangle2D rect1 = new Rectangle2D.Double(325,300,350,300);
g2d.draw(rect1);
g2d.setColor(Color.black);
g2d.fill(rect1);
}
public static void main(String[]args){
HOUSE1 f = new HOUSE1();
f.setTitle("HOUSE");
f.setSize(300,100);
}
}
3 ответа
1-й: в вашем основном пустоте вы должны установить свой фрейм (f) видимым -> f.setVisible (true)
2-й: Также вы можете захотеть f.pack(); прямо перед тем, как вы установите его на видимость, чтобы убедиться, что ваши компоненты работают так, как ожидалось.
3-е: в java мы используем заглавную первую букву в классе, как этот "Дом", полностью заглавные слова используются для окончательных.
Вы забыли сделать свой кадр видимым.
Просто добавь:
f.setVisible(true);
Вы должны исправить объявление метода рисования следующим образом:
@override
public void paint(Graphics g) {
// your code
}
Ваше окно пустое, потому что ваше paint
метод никогда не вызывается. Ваш метод
public void paint(Graphics2D g) // DOESN'T WORK
должен быть изменен на
public void paint(Graphics g) // Correct
так что он перекрывает paint
метод в Frame
, Графическая система будет вызывать только paint(Graphics)
; если ваш метод называется paint
не переопределяет метод paint(Graphics)
в Frame
один в Frame
вызывается вместо твоего.