powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пишу Тетрис, просьба помочь.
8 сообщений из 8, страница 1 из 1
Пишу Тетрис, просьба помочь.
    #38578992
Idavinchi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу тетрис, пытаюсь создать объект в классе Square , потом этот объект вызываю в классе Frame и добавляю на панель tPanel .
Но при запуске получаю ошибку Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container.
Подскажите пожалуйста что я не так делаю. Или как надо сделать с чего вообще лучше начать и какие могут возникнуть сложности, поделитесь пожалуйста своим опытом.
Буду очень благодарен.

Код: 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.
package Desktop;
 
import javax.swing.*;
 
public  class Square extends JFrame {
 
    public Square (){
    JLabel im1 = new JLabel(new  ImageIcon("src\\image\\1.png"));
    im1.setSize(30, 30);
    im1.setLocation(0, 0);
    im1.setVisible(true);
    }
}
-----------------------------------------
 
package Desktop;
 
import javax.swing.*;
import java.awt.*;
 
public class Frame extends JFrame{
 
    Dimension deskSize = Toolkit.getDefaultToolkit().getScreenSize();
    int deskWidth = deskSize.width;
    int desHeight = deskSize.height;
 
    public Frame (){
        super("Tetris");
        setBounds((deskWidth - 306) / 2+250, (desHeight - 480) / 2-50, 306, 480);
 
        JPanel tPanel = new JPanel(null);
        tPanel.setBackground(Color.DARK_GRAY);
 
        Square sq = new Square();
        tPanel.add(sq);
 
        setContentPane(tPanel);
 
    }
 
}
 
--------------------------------------------------
 
package Desktop;
 
import Desktop.Frame;
 
import javax.swing.*;
 
 class Main {
    public static void main (String[] args){
 
    Frame Tetris = new Frame();
    Tetris.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Tetris.setResizable(false);
    Tetris.setVisible(true);
 
}
}
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579019
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Square extends JFrame -> Square extends JPanel
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579022
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и нафига вы тетрис на Swing пишете? Хотя бы Java2D взяли для приличия.

А вообще JavaFX - наше всё.
http://jayskills.com/blog/2012/03/30/programming-games-in-javafx-2-0/
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579082
Idavinchi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
\спасибо большое ошибка пропала. Но изображение new ImageIcon("src\\image\\1.png") не отображается после запуска, с чем это связано?
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579129
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdavinchiBlazkowicz,
\спасибо большое ошибка пропала. Но изображение new ImageIcon("src\\image\\1.png") не отображается после запуска, с чем это связано?
С тем что src это, вроде как, исходный код. А классы компилируются и запускаются в другое место.
Нужно настроить IDE, чтобы при компиляции картинки попадали в classpath
И наверное есть смысл изучить метод Class.getResourceAsStream()
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579177
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Но там еще, кажется, JLabel im1 создается, а никуда не добавляется.
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579187
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FDНо там еще, кажется, JLabel im1 создается, а никуда не добавляется.
Верно. Вы в очередной раз более внимательны.

Код: java
1.
2.
3.
4.
5.
6.
7.
public class Square extends JLabel{ 
    public Square (){
        super(new  ImageIcon("src\\image\\1.png"));
        setSize(30, 30);
        setLocation(0, 0);
    }
}
...
Рейтинг: 0 / 0
Пишу Тетрис, просьба помочь.
    #38579189
Idavinchi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок. Спасибо за помощь, буду дальше изучать java.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Пишу Тетрис, просьба помочь.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]