Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Пишу Тетрис, просьба помочь. / 8 сообщений из 8, страница 1 из 1
05.03.2014, 14:19
    #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
05.03.2014, 14:29
    #38579019
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пишу Тетрис, просьба помочь.
Square extends JFrame -> Square extends JPanel
...
Рейтинг: 0 / 0
05.03.2014, 14:30
    #38579022
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пишу Тетрис, просьба помочь.
Ну, и нафига вы тетрис на Swing пишете? Хотя бы Java2D взяли для приличия.

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

Но там еще, кажется, JLabel im1 создается, а никуда не добавляется.
...
Рейтинг: 0 / 0
05.03.2014, 16:05
    #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
05.03.2014, 16:06
    #38579189
Idavinchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пишу Тетрис, просьба помочь.
Ок. Спасибо за помощь, буду дальше изучать java.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Пишу Тетрис, просьба помочь. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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