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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отрисовка JPanel 
:(
    Опции темы
Stvan
Дата 1.3.2005, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Делаю свою панель, с фоном (файл gif) и кнопкой:

Код

public class MapPanel extends JPanel {
   Image background = Toolkit.getDefaultToolkit().getImage("...gif");

   public MapPanel(int xpos, int ypos) {
       super();
       setBounds(xpos, ypos, 570, 570);
       JButtton button = new JButton();
       button.setPreferredSize(new Dimension(11,40));
       this.add(button);
  }

   public void paint(Graphics g) {
       super.paint(g);
       g.drawImage(background,0,0,this);
   }
}


Так вот после отрисовки всего этого дела фон закрывает кнопку и она не появляется, пока на нее не нажмешь вслепую. Что неправильно?
PM MAIL   Вверх
Domestic Cat
Дата 1.3.2005, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Попробуй вызывать super.paint(g) после drawImage а не перед.


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

PM   Вверх
Stvan
Дата 1.3.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Тогда фон вообще не рисуется.
PM MAIL   Вверх
Domestic Cat
Дата 1.3.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вот этот код отрисовывает все как надо:

Код

import javax.swing.*;
import java.awt.*;

public class Doh extends JFrame
{
Doh()
{
 setSize(400, 500);
 add(new MapPanel(0, 0));
 setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 setVisible(true);
}
public static void main(String [] s)
{
 new Doh();
}
}

class MapPanel extends JPanel
{
   Image background = new ImageIcon("C:\\Cat.jpg").getImage();

   public MapPanel(int xpos, int ypos)
   {
       setBounds(xpos, ypos, 300, 300);
       JButton button = new JButton("Hello");
       button.setPreferredSize(new Dimension(60,60));
       this.add(button);
  }

   public void paintComponent(Graphics g)
   {
       g.drawImage(background,0,0,this);
   }
}



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

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


Новичок



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

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



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


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

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



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

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

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


 




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


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

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