Задать вопрос
@LazariusPaskalius

Не закрывается java фрейм, как исправить?

Создаю окно, в котором выводится круг, но при попытке закрытия окна ничего не происходит. Возможно закрыть только через диспетчер задач. Как можно исправить данное недоразумение?
import java.awt.*;
class CircleCanvas extends Canvas {
public void paint(Graphics g){
	Dimension d=this.getSize();
	int diam=Math.min(d.width-1,d.height-1)-60;
	g.drawOval(20,20,diam,diam);
	}
}
class MyFrame extends Frame {
	public MyFrame(){
		super("Painting");
		// setBackground(Color.grey);
		setLayout(new GridLayout(3,3));
		add(new CircleCanvas());
		setSize(500,400);
		setVisible(true);
	}
}
public class RunGn{
	public static void main(String[] u) {
		Frame f=new MyFrame();
		
            });
		
	}
}


Там еще цвет фона почему-то не устанавливается(в коде он закомментирован), если кто знает как это тоже исправить - сообщите, буду благодарен за информацию
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
myjcom
@myjcom
https://www.tutorialspoint.com/awt/awt_window_list...
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class CircleCanvas extends Canvas 
{
  public void paint(Graphics g)
  {
    Dimension d = this.getSize();
    int diam = Math.min(d.width - 1, d.height - 1) - 60;
    g.drawOval(20, 20, diam, diam);
  }
}

class MyFrame extends Frame 
{
  public MyFrame()
  {
    super("Painting");
    setBackground(Color.gray); // GRAY а не GREY
    setLayout(new GridLayout(3, 3));
    add(new CircleCanvas());
    setSize(500, 400);
    setVisible(true);

    // обработчик событий
    addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent we) 
      {
        System.exit(0);
      }	
    });
  }
}

public class RunGn
{
  public static void main(String[] u) 
  {
    Frame f = new MyFrame();
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы