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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменить порядок отрисовки компонент? 
:(
    Опции темы
Royan
Дата 17.4.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Приветствую!
Допустим я добавил в окошко две кнопки. И пусть они они у меня друг на дружку накладываются, как мне поменять их местами.
Рассмотрим пример (еще раз спасибо Domestic Cat):
Код

import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.Window;
public class test01 
{   
    public static void main(String [] args)
    {       
        Frame frm = new Frame("MyApp");
        Window wnd = new Window(frm);        
        frm.setSize(300, 300);
        wnd.setSize(300, 300);
        Button b1 = new Button("Do nothing 1");
        Button b2 = new Button("Do nothing 2");
        Panel panel = new Panel();
        panel.setLayout(null);
        b1.setBounds(50, 40, 100, 22);
        b2.setBounds(70, 45, 150, 22);
        panel.add(b1);
        panel.add(b2);        
        wnd.add(panel);  
        wnd.show();
        try {
            /* 5 seconds delay */
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.exit(0);
    }
}

Сейчас b1 отображается поверх b2, как заставить b2 отображаться поверх b1?
Спасибо!


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Domestic Cat
Дата 17.4.2005, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Код

import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.Window;
public class test01 
{   
    public static void main(String [] args)
    {       
        Frame frm = new Frame("MyApp");
        Window wnd = new Window(frm);        
        frm.setSize(300, 300);
        wnd.setSize(300, 300);
        Button b1 = new Button("Do nothing 1");
        Button b2 = new Button("Do nothing 2");
        Panel panel = new Panel();
        panel.setLayout(null);
        b1.setBounds(50, 40, 100, 22);
        b2.setBounds(70, 45, 150, 22);
        panel.add(b1);
        panel.add(b2);        
        wnd.add(panel);  
        wnd.show();
        try {
            /* 5 seconds delay */
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        panel.remove(b1);
        panel.add(b1);
        try {
            /* 5 seconds delay */
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.exit(0);
    }
}

Заметь какую кнопку я убираю и добавляю - ту что поверх.


--------------------

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


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


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

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



А может, попробовать сделать кнопку невидимой? Или нажатие все равно будет ловиться?


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата(Lamer @ 17.4.2005, 12:05)
А может, попробовать сделать кнопку невидимой? Или нажатие все равно будет ловиться?

smile


--------------------

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


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


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

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



Я имею в виду
Код

b1.setVisible(false);



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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Так задача не в том, чтобы скрыть, а в том, чтобы вынести на передний план.


--------------------

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


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


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

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



Ну ведь если одна скроется, то вторая автоматом станет видна. Проверил - если сделать кнопку невидимой, то она становится ваще невидимой, и места не занимает.


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



А если ее показать - изменится порядок отрисовки?


--------------------

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


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


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

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



Нет. Просто станет видна нижняя кнопка вместо верхней.


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Не понял я. Ты запусти мой код тут и посмотри на результат (он через 5 секунд идет.)


--------------------

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


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


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

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



Твой код работает (не запускал, но вроде должен). Я просто предложил другой вариант, как альтернативу.


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Дело в том, что твой вариант не сработает просто.


--------------------

PM   Вверх
Royan
Дата 19.4.2005, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Domestic Cat, Моя признательность, эти хинты явно заработаны долгим и упорным трудом!


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Royan
Дата 19.4.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Единственное что хочу добавить по коду, наверно следует сделать указать размеры панели (panel.setSize(300, 300);), чтобы при wnd.pack() окошко не пропадало


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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