LINUX.ORG.RU

Кто из них тормозит?

 , , ,


0

2

Доброго всем вечера. Читаю книгу по java, дошел до одного примера , набрал его в IntellijIdea и он страшно тормозит. Пример простой-перемещение синего квадрата в окне. Соответственно фрейм в окне перерисовывается 400 раз. Вот собственно код:

package com.company;

        import javax.swing.*;
        import java.awt.*;

public class Main {

    int x = 0;
    int y = 0;

    public static void main(String[] args) {
        // write your code here
        Main gui = new Main();
        gui.go();
    }


    public void go() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MyDraw draw = new MyDraw();
        frame.getContentPane().add(draw);
        frame.setSize(600, 400);
        frame.setVisible(true);
        for (int i = 0; i < 400; i++) {
            if(i<200){
                x++;
                y++;
            }
            else {
                x++;
                y--;
            }
            draw.repaint();
            try {
                Thread.sleep(10);
            } catch (Exception ex) {
            }
        }
    }

    class MyDraw extends JPanel {
        public void paintComponent(Graphics g) {
            g.setColor(Color.white);
            g.fillRect(0, 0, this.getWidth(), this.getHeight());

            g.setColor(Color.BLUE);
            g.fillRect(x, y, 40, 40);
        }
    }
}
Так вот, квадрат этот фризит, дергается. Пробовал запускаться в i3, поставил микрокод. Вообще ничего не помогло. На оффтопике все идеально движется. Хочется понять в чем причина? Кеды? а именно kwin, или вообще сам линь? Дистр Debian 10.2

А видеодрова какие? Тут КДЕ не при чём, если в айтри повторяется. Только иксы и видеодрова. А также, возможно, недоустановленные пакеты джавы. В линуксе же всё на стотыщпиццот пакетов разделено. Или просто «не та» джава. Они тоже разные есть.

ChekPuk ★★★
()
Ответ на: комментарий от EXL

Спасибо! Помогло! Либы гляну, но тут хоть бы с книжными примерами разобраться. Так неинтутивно устроен интерфейс, будто костыляли потом уже. P.S.Java пробовал и с сайта оракла и которая Openjdk. Все пакеты в дебе из стабильной ветки.

steadfast
() автор топика
Ответ на: комментарий от steadfast

Так неинтутивно устроен интерфейс, будто костыляли потом уже.

Где именно? В IntelliJ IDEA, в AWT/Swing или KDE?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Java/Swing. Не думал, что тут все так замудрено. Те же слушатели как сделаны, внутренние классы, наследование везде. Ужас.

steadfast
() автор топика
Ответ на: комментарий от steadfast

В «обычной» жабке всё _очень_ просто. Вот когда будешь пытаться запустить JAX-WS на андроиде - офигеешь.

anonymous
()
            draw.repaint();
            try {
                Thread.sleep(10);
            } catch (Exception ex) {
            }

А как это по-вашему должно не тормозить?..

https://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html - читать!

Или даже вот это https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html

BattleCoder ★★★★★
()
Последнее исправление: BattleCoder (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.