WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Создание заставок

Создание заставок


Дата публикации: 17-03-2013

Многие из нас видели заставки типа тех, которые возникают при запуске MS Word-а и других известных программ. Они называются заставками (splash screens). Не смотря на то, что должны быть другие пути создания таких экранов в Java, эта статья продемонстрирует одну простую технику.

Обычная заставка имеет две интересные характеристики:

1. Она не имеет фрейма окна
2. Она исчезает сама по себе

До того, как мы рассмотрим небольшой кусочек кода, давайте подумаем над этими двумя требованиями с точки зрения программирования на Java. Осторожный взгляд на пункт 1 откроет нам, что мы не можем использовать java.awt.Frame поскольку этот класс выводит фрейм окна. Так, а как мы тогда должны нарисовать эту заставку?

Просто давайте, используем java.awt.Window. Window не рисует дополнительные вещи, типа заголовка окна и границ окна. Так что, он отвечает нашим требованиям. Ну, пункт 2 вообще простой. Все, что нам нужно, это показать окно на некоторое время, а затем закрыть его.

Теперь пришло время для исходного кода, взгляните:



import java.awt.*;

/** Splash screen demo. */
public class SplashScreenDemo extends Window {

/** Constructor. */
public SplashScreenDemo() {
// Create a dummy parent frame
super(new Frame());
// Initialize
init();
}

/** Initialize the splash screen. */
public void init() {

// Set background
Color bg = new Color(255, 255, 150);
setBackground(bg);

// Create dummy components for the splash screen
Font fb = new Font("Arial", Font.BOLD, 14);
Font fi = new Font("Arial", Font.BOLD | Font.ITALIC, 14);
Font fn = new Font("Arial", Font.PLAIN, 12);
Label lbl1 = new Label("Splash Demo V1.0", Label.CENTER);
lbl1.setFont(fb);
Label lbl2 = new Label("by Technobuff.com", Label.CENTER);
lbl2.setFont(fi);
Label lbl3 = new Label("Home: http://www.technobuff.com/",
Label.CENTER);
lbl3.setFont(fn);

// Add the components to the window
add(lbl1, BorderLayout.NORTH);
add(lbl2, BorderLayout.CENTER);
add(lbl3, BorderLayout.SOUTH);

// Pack window
pack();

// Set the location near the center of the screen
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dSplash = getPreferredSize();
Dimension dScreen = toolkit.getScreenSize();
int x = (dScreen.width / 2) - (dSplash.width / 2);
int y = (dScreen.height / 2) - (dSplash.height / 2);
setLocation(x, y);

// Show
setVisible(true);

}

/** Closes the splash screen. */
public void close() {
setVisible(false);
dispose();
}

/** Main. */
public static void main(String[] args) {

// Show the splash screen
SplashScreenDemo splash = new SplashScreenDemo();

try {
// Display the screen for sometime
Thread.sleep(5 * 1000);
}
catch(InterruptedException e) {
}

// Close the splash screen
splash.close();

// Demo over, exit now
System.exit(0);

}

}
В приведенной программе, метод main() создает представление SplashScreenDemo, который произошел от java.awt.Window. Конструктор создает невидимый Frame в качестве родителя этого окна. Затем он инициализирует заставку вызовом метода init(). Метод init() устанавливает значения нескольких меток (Labels) и добавляет их на экран. Этот метод также имеет простую логику и выводит окно в центр экрана. В заключении он показывает заставку. Метод main() закрывается через несколько секунд.

Красиво и просто, не правда ли? Но такой метод стоит стороной от всего остального пользовательского интерфейса. Взамен он имеет простую заставку и не должен содержать прикольную графику. Как только вы добавите графику, то потрудитесь создать и нормальный фрейм. А так просто покажите и спрячьте его.
Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 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

Друзья сайта



Случайная цитата

Роберт Кийосаки:

"Единственное различие между богатым и бедным человеком в том, что они делают в свободное время."

Опрос

Ваша техника?

Настольный компютер
Ноутбук
Смартфон
iPad
iPhone
другое