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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Всплывающие окна, как в qip, вопрос для профи 
:(
    Опции темы
xber9
Дата 19.1.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



наверно большенство знает что есть qip 
все видели что при входе нового пользователя справа экрана вылезает полупрозрачное окошко

а можно ли сделать что нибуть подобно на java  
если да то как 
у меня нет идей вообще
Может кто поможет?
PM MAIL   Вверх
Kangaroo
Дата 19.1.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



xber9
видел когда-то решение в нете. Заключалось в том, что сначала делается скриншот фона, потом в всплывающем окошке кусок этой картинки вставляется как фон, ну и рисуется панель полупрозрачным цветом.
Решение очень популярное, видел во многих статьях.


--------------------
Lost....
PM MAIL MSN   Вверх
dorogoyIV
Дата 20.1.2008, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



примерно навалял  smile 
Код

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

class PopupWindow extends JFrame
                  implements ActionListener
{
 Dimension d=getToolkit().getScreenSize();
 Image image;

 PopupWindow()
 {
  setBounds(100,100,400,300);
  setLayout(new FlowLayout());
  JButton jb=new JButton("Show window");
  add(jb);
  jb.addActionListener(this);
 }

 public void actionPerformed(ActionEvent e)
 {
  MyWindow w=new MyWindow();
  w.setVisible(true);
 }

 class MyWindow extends JWindow
                implements Runnable
 {
  MyWindow()
  {
   setBounds(d.width-120, d.height-150, 100, 100);
   add(new MyImage());
   setAlwaysOnTop(true);
   new Thread(this).start();
  }

  public void run()
  {
   while(true)
   {
    try
    {
     Thread.currentThread().sleep(3000);
    }
    catch(Exception ex){}

    dispose();
    return;
   }
  }
 }

 class MyImage extends JComponent
 {
  MyImage()
  {
   try
   {
    Robot r=new Robot();
    image=r.createScreenCapture(
               new Rectangle(d.width-120, d.height-150, 100, 100));
   }
   catch(Exception ex){}
  }

  public void paint(Graphics g)
  {
   g.drawImage(image, 0, 0, this);
   g.setColor(Color.yellow);
   g.setFont(new Font("", Font.BOLD, 20));
   g.drawString("image", 20, 20);
  }
 }

 public static void main(String [] args)
 {
  JFrame f=new PopupWindow();
  f.setVisible(true);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}



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


Бывалый
*


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

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



за код псб
но есть некоторые вопросы по его пониманию
1) как увеличить размер этого окошка
2) как сделать его менее прозрачным
3) можно ли сделать именно всплывание а  не появление
PM MAIL   Вверх
dorogoyIV
Дата 20.1.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



1. там где видишь цифры - это размеры  smile 
2. замени класс MyWindow
Код

 int alpha=0;

...


 class MyWindow extends JWindow
                implements Runnable
 {
  MyWindow()
  {
   setBounds(d.width-120, d.height-150, 100, 100);
   add(new MyImage());
   setAlwaysOnTop(true);
   new Thread(this).start();
  }

  public void run()
  {
   while(true)
   {
    try
    {
     Thread.currentThread().sleep(10);
    }
    catch(Exception ex){}

    alpha++;
    if(alpha==255)
    {
     alpha=0;
    }
    repaint();
   }
  }
 }


   g.setColor(new Color(0, 255, 0, alpha));


Это сообщение отредактировал(а) dorogoyIV - 20.1.2008, 12:23
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.0626 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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