неправильная отрисовка окна

334
08 июля 2017, 08:35
package dino;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Dino extends JFrame implements KeyListener  {
    public static void main(String[] args) {
        JPanel panel = new JPanel();
        Dino frame = new Dino();
        frame.setSize(1200,1000);
        frame.setResizable(false);
        frame.setContentPane(panel);
        panel.setBackground(Color.white);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
    @Override
    public void paint(Graphics g){
        Font font;
        font = new Font("Calibri",Font.BOLD,25);
        g.setColor(Color.black);
        g.setFont(font);
        g.drawString("Нажмите пробел чтобы играть", 300, 475);
    }
    @Override
    public void keyReleased(KeyEvent ke) {
    }
    @Override
    public void keyTyped(KeyEvent ke) {
    }
    @Override
    public void keyPressed(KeyEvent ke) {
    }
}

при выполнении копирует в окно место где окно находилось во время старта программы

Answer 1

Переопределив метод paint вы лишили систему возможности нарисовать что-либо. Вам надо сделать вызов метода предка. Вот так

@Override
public void paint(Graphics g){
    super.paint(g); // вызов метода предка
    Font font;
    font = new Font("Calibri",Font.BOLD,25);
    g.setColor(Color.black);
    g.setFont(font);
    g.drawString("Нажмите пробел чтобы играть", 300, 475);
}

А в целом не стоит переопределять что-то в объекте класса JFrame. Рисовать лучше в в объекте JPanel.

READ ALSO
admob реклама между приложениями

admob реклама между приложениями

ЗдравствуйтеВозможно ли в admob бесплатно добавить рекламу на свои приложения?

355
RxJava. Как в Observable вывести progressDialog?

RxJava. Как в Observable вывести progressDialog?

У меня есть метод для примера, мне нужно во время получения запроса вывести progressDialog, в onCompleted() - dismiss в onNext show, но по итогу на экран progressDialog не выводитсяВ...

465
Записать версию в переменную

Записать версию в переменную

Подскажите код, который бы получал содержимое файла (versiontxt), который находится по ссылке http://localhost/version

325
Как после выполнения return метод продолжает работать?

Как после выполнения return метод продолжает работать?

Есть метод который ходит в DB и вытаскивает клиента из таблицыПроисходит странная аномалия, в дебагере после прохождения строки return result; метод...

256