Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
4 / 4 / 2
Регистрация: 23.12.2016
Сообщений: 124

Почему окно черное а не голубое?

20.01.2018, 22:51. Показов 761. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему после выполнения программы окно осталось черным, а не изменило свой цвет на голубой?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import javax.swing.JFrame;
 
 
public class Game extends Canvas {
    private static final long srialVesionUID = 1L;
    
    public static int width = 300;
    public static int height = width / 16 * 9;
    public static int scale = 3;
    private Thread thread;
    private JFrame frame;
    private BufferStrategy bs = null;
    private Renderer renderer;
    private boolean running = false;
    private BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    private int[] pixels = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
    
    public Game(){
        Dimension size = new Dimension(width * scale, height * scale);
        setPreferredSize(size);
        frame = new JFrame();
        renderer = new Renderer(width, height, pixels);
    }
    
    public synchronized void start() {
        running = true;
        thread = new Thread(() -> {
            init();
            while(running){
                render();
                update();
        }
        });
        thread.start();
    }
    
    public synchronized void stop() {
        running = false;
        try{
            thread.join();
        }catch(InterruptedException e) {
            e.printStackTrace();
        }
    }
    
    
    private void render(){
        if (bs == null) {
            createBufferStrategy(3);
            bs = getBufferStrategy();
        }
        renderer.render();
        Graphics g = bs.getDrawGraphics();
        g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
        g.dispose();
        bs.show();
    }    
    
    private void init(){
        frame.setResizable(false);
        frame.setTitle("Fury");
        frame.add(this);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);        
    }    
    
     private void update(){ 
    }
    
        public static void main(String[] args) {
            new Game().start();
        }   
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Renderer {
    
    private int width, heigth;
    private int pixels[] = null;
    
    public Renderer(int width, int hight, int pixels[]){
        this.width = width;
        this.heigth = heigth; 
        this.pixels = pixels;
    }
    
    public void render() {
        for(int y = 0; y < heigth; y++) {
            for(int x = 0; x < width; x++) {
                pixels[x + y * width] = 0x66ffff;
            }
        }
        
    }
    
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2018, 22:51
Ответы с готовыми решениями:

Голубое окно с часами и иероглифами
Здравствуйте! В меню Программы появилась строчка из китайских иероглифов. В списке Программ в Панели управления появилась...

Черное окно. Что ли
Здраствуйте! Вот я пишу: @echo off notepad.exe Открывается черное окно, а затем открывается Блокнот.

черное окно перед запуском Windows 10
Доброго времени суток. После переустановки Widnows 10 при включении ПК появляется черное окно 1024x768 на фоне картинки материнский платы...

1
 Аватар для vvm28
772 / 540 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
22.04.2018, 21:57
Попробуйте такой render()
Заполнится красными линиями.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    public void render( ) {
          
          
          
      /*  for(int y = 0; y < heigth; y++) {
            for(int x = 0; x < width; x++) {
                pixels[x + y * width] = 0x66ffff;
                 pixels[x + y * width] = 0x0000ff;
            }
        }*/
 int x;
int y;
int clrR = 0;
int clrG = 0;
int clrB = 0;
int i = 0;
    
            for(y = 0; y < 128; y++)
            {
              for (x = 0; x < 255; x++) 
              {
                pixels[i++] = 
                  0xff000000 | 
                  (clrR << 16) | (clrG << 8) | clrB;
              }
              clrR += 2;
            }
        
        
    }
Добавлено через 10 минут
PS/
или так , от зеленого до желтого

Java
1
2
3
4
5
6
7
8
9
10
 for(y = 0; y < 128; y++)
            {
              for (x = 0; x < 255; x++) 
              {
                pixels[i++] = 
                  0x0000ff00 | 
                  (clrR << 16) | (clrG << 8) | clrB;
              }
              clrR += 2;
            }
Добавлено через 20 минут
PS.

Тут еще один косяк был.

Вот как исправить.
Java
1
2
3
4
5
6
    public Renderer(int w, int h, int pixels[]){
        ColorModel cm = ColorModel.getRGBdefault(); 
        this.width = w;
        this.heigth = h; 
        this.pixels = pixels;
    }
Теперь, как вы хотели заполняем голубыми пикселями.
Java
1
2
3
4
5
6
7
8
 public void render( ) {
                 
        for(int y = 0; y < heigth; y++) {
            for(int x = 0; x < width; x++) {
                pixels[x + y * width] = 0x66ffff;
                 
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2018, 21:57
Помогаю со студенческими работами здесь

Черное окно, вместо моей картинки
#include &lt;SFML/Graphics.hpp&gt; using namespace sf; int main() { RenderWindow window(VideoMode(200, 200), &quot;Error 5001&quot;); ...

В чем ошибка? Выводит просто черное окно
В чем ошибка? Выводит просто черное окно #include &lt;SFML\Graphics.hpp&gt; #include &lt;SFML\OpenGL.hpp&gt; #include &lt;gl\GLU.h&gt; ...

Появляется на несколько мгновений черное окно и исчезает
Здравствуйте! Помогите новичку. Начал изучать C++ по книге Schildt H. / Шилдт Г. - C++. From the Ground Up, 3rd Edition / C++....

При включении компьютера появляется маленькое черное окно
Подскажите пожалуйста что это , при включениикомпа стало появляться маленькое ченое окно с мигающим курсором, а потом надпись &quot;c:...

Windows XP после подготовки к установке появляется черное окно?
winxp после подготовки к установке выбрасывает черное окно что делать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru