Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра - морской бой. Кораблики это какой компонент? 
V
    Опции темы
BezImeni
Дата 7.5.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 7.5.2006

Репутация: нет
Всего: нет



   Новичок.
   Вот например игра "Морской бой",
поле рисуется на JPanel,
а отдельные корабли это какой компонент?

   Если их тоже делать JPanel, то тогда не получится их таскать мышкой по полю (во время расстановки в начале игры).

   Т.е. хочется чтобы корабли могли прорисовывать себя и чтобы их можно было перетаскивать по полю
и разворачивать.

   Наверняка тут есть готовое решение, если Вы знаете - подскажите пожалуйста. smile  
PM MAIL   Вверх
polosatij
Дата 7.5.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(BezImeni @  7.5.2006,  20:03 Найти цитируемый пост)
а отдельные корабли это какой компонент?


в принципе всё можно решить с помощью java.awt.Canvas и все кортинки рисовать в него, т.к. коробли не могут стоять на середине клетки и разворачивать их только по клеткам..

ты можешь всё простой графикой решить: Image


Цитата(BezImeni @  7.5.2006,  20:03 Найти цитируемый пост)
Наверняка тут есть готовое решение, если Вы знаете - подскажите пожалуйста.



я не знаю, насколько ты всё хочешь закрутить, но ты можешь посмотреть ещё в сторону Drag and Drop.
пользуйся google smile

удачи smile 


--------------------
PM   Вверх
batigoal
Дата 7.5.2006, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



В общем-то, наследование от JPanel - вполне нормальное решение.
Перетаскивать их можно будет, но для этого придется приложить некоторые усилия. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
BezImeni
Дата 7.5.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 7.5.2006

Репутация: нет
Всего: нет



Lamer George Дата 7.5.2006, 21:31 
Цитата
 
В общем-то, наследование от JPanel - вполне нормальное решение.
Перетаскивать их можно будет, но для этого придется приложить некоторые усилия.  


можно пожалуйста поподробнее про эти усилия - хоть в какую сторону их прикладывать?
 
PM MAIL   Вверх
powerOn
Дата 7.5.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Можно к примеру (не гарантирую разумность  smile )  на JPanel создать таблицу каких либо элементов, например кнопок размером 30х30. При этом использовать GridBagLayout, У кнопок события обрабатывать, цвет менять, картинки на них выводить.

вот код, но компонентов много, поэтому он очень жуткий, сгенерирован IDE. Но это лишь пример...
Код

public class FieldFrame extends javax.swing.JFrame {
    
    /** Creates new form PrintForm */
    public FieldFrame() {
        initComponents();
    }

    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        jPanel1 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();
        jButton8 = new javax.swing.JButton();
        jButton9 = new javax.swing.JButton();
        jButton10 = new javax.swing.JButton();
        jButton11 = new javax.swing.JButton();
        jButton12 = new javax.swing.JButton();
        jButton13 = new javax.swing.JButton();
        jButton14 = new javax.swing.JButton();
        jButton15 = new javax.swing.JButton();
        jButton16 = new javax.swing.JButton();
        jButton17 = new javax.swing.JButton();
        jButton18 = new javax.swing.JButton();
        jButton19 = new javax.swing.JButton();
        jButton20 = new javax.swing.JButton();
        jButton21 = new javax.swing.JButton();
        jButton22 = new javax.swing.JButton();
        jButton23 = new javax.swing.JButton();
        jButton24 = new javax.swing.JButton();
        jButton25 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jPanel1.setLayout(new java.awt.GridBagLayout());

        jButton1.setText("jButton1");
        jButton1.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton1.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton1.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        jPanel1.add(jButton1, gridBagConstraints);

        jButton4.setText("jButton4");
        jButton4.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton4.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton4.setPreferredSize(new java.awt.Dimension(30, 30));
        jPanel1.add(jButton4, new java.awt.GridBagConstraints());

        jButton2.setText("jButton2");
        jButton2.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton2.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton2.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 1;
        jPanel1.add(jButton2, gridBagConstraints);

        jButton5.setText("jButton5");
        jButton5.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton5.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton5.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 2;
        jPanel1.add(jButton5, gridBagConstraints);

        jButton7.setText("jButton7");
        jButton7.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton7.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton7.setPreferredSize(new java.awt.Dimension(30, 30));
        jPanel1.add(jButton7, new java.awt.GridBagConstraints());

        jButton3.setText("jButton3");
        jButton3.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton3.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton3.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        jPanel1.add(jButton3, gridBagConstraints);

        jButton6.setText("jButton6");
        jButton6.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton6.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton6.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        jPanel1.add(jButton6, gridBagConstraints);

        jButton8.setText("jButton8");
        jButton8.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton8.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton8.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        jPanel1.add(jButton8, gridBagConstraints);

        jButton9.setText("jButton9");
        jButton9.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton9.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton9.setPreferredSize(new java.awt.Dimension(30, 30));
        jPanel1.add(jButton9, new java.awt.GridBagConstraints());

        jButton10.setText("jButton4");
        jButton10.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton10.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton10.setPreferredSize(new java.awt.Dimension(30, 30));
        jPanel1.add(jButton10, new java.awt.GridBagConstraints());

        jButton11.setText("jButton1");
        jButton11.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton11.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton11.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 2;
        jPanel1.add(jButton11, gridBagConstraints);

        jButton12.setText("jButton8");
        jButton12.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton12.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton12.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 2;
        jPanel1.add(jButton12, gridBagConstraints);

        jButton13.setText("jButton9");
        jButton13.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton13.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton13.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 4;
        gridBagConstraints.gridy = 2;
        jPanel1.add(jButton13, gridBagConstraints);

        jButton14.setText("jButton3");
        jButton14.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton14.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton14.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 4;
        jPanel1.add(jButton14, gridBagConstraints);

        jButton15.setText("jButton2");
        jButton15.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton15.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton15.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 4;
        jPanel1.add(jButton15, gridBagConstraints);

        jButton16.setText("jButton5");
        jButton16.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton16.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton16.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 4;
        jPanel1.add(jButton16, gridBagConstraints);

        jButton17.setText("jButton7");
        jButton17.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton17.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton17.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 4;
        gridBagConstraints.gridy = 4;
        jPanel1.add(jButton17, gridBagConstraints);

        jButton18.setText("jButton6");
        jButton18.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton18.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton18.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 1;
        jPanel1.add(jButton18, gridBagConstraints);

        jButton19.setText("jButton4");
        jButton19.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton19.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton19.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        jPanel1.add(jButton19, gridBagConstraints);

        jButton20.setText("jButton1");
        jButton20.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton20.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton20.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        jPanel1.add(jButton20, gridBagConstraints);

        jButton21.setText("jButton8");
        jButton21.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton21.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton21.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 4;
        gridBagConstraints.gridy = 3;
        jPanel1.add(jButton21, gridBagConstraints);

        jButton22.setText("jButton9");
        jButton22.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton22.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton22.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 3;
        jPanel1.add(jButton22, gridBagConstraints);

        jButton23.setText("jButton3");
        jButton23.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton23.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton23.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        jPanel1.add(jButton23, gridBagConstraints);

        jButton24.setText("jButton2");
        jButton24.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton24.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton24.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 4;
        gridBagConstraints.gridy = 1;
        jPanel1.add(jButton24, gridBagConstraints);

        jButton25.setText("jButton5");
        jButton25.setMaximumSize(new java.awt.Dimension(30, 30));
        jButton25.setMinimumSize(new java.awt.Dimension(30, 30));
        jButton25.setPreferredSize(new java.awt.Dimension(30, 30));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 3;
        jPanel1.add(jButton25, gridBagConstraints);

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FieldFrame().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton12;
    private javax.swing.JButton jButton13;
    private javax.swing.JButton jButton14;
    private javax.swing.JButton jButton15;
    private javax.swing.JButton jButton16;
    private javax.swing.JButton jButton17;
    private javax.swing.JButton jButton18;
    private javax.swing.JButton jButton19;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton20;
    private javax.swing.JButton jButton21;
    private javax.swing.JButton jButton22;
    private javax.swing.JButton jButton23;
    private javax.swing.JButton jButton24;
    private javax.swing.JButton jButton25;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration
    
}

 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
batigoal
Дата 7.5.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(BezImeni @  7.5.2006,  22:54 Найти цитируемый пост)

можно пожалуйста поподробнее про эти усилия - хоть в какую сторону их прикладывать?

Попробуй посмотреть те статьи, которые Google вываливает по поиску "java drag and drop". Сам не делал, поэтому советовать ничего не могу. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.