Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Maksim
#1

Как поменять иконку в Applet Window и сделать окно закрываемым? - Java

31.01.2008, 22:35. Просмотров 1516. Ответов 8
Метки нет (Все метки)

Люди, посоветуйте чего-нибудь, впервые сталкиваюсь с Java и апплетами.
Как поменять иконку на апплет окне?
Если можно, кусочек кода, более менее подробный.
И другая проблема. Как сделать это окно закрываемым, при щелчке на кнопку 'закрыть' или по Alt+F4?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2008, 22:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как поменять иконку в Applet Window и сделать окно закрываемым? (Java):

Как у кнопки (JButton) поменять иконку при нажатии на эту кнопку?
подскажите пожалуйста, как у кнопки (JButton) поменять иконку при нажатии на...

Блокирующее Модальное окно как сделать?
Есть окно Обыкновенный JFrame. Form1, Form2 На нем Form1 кнопка которая...

Как сделать подчиненное окно JFrame
Задача: по нажатию кнопки мне нужно вызвать вспомогательное окно(не обязательно...

Как поменять иконку?
Здравствуйте уважаемые программисты! Подскажите пожалуйста как в вижуал студио...

Как поменять иконку экзешника в C++
Нашел как сделать это в шарпе - через свойства проекта, но в цпп в свойствах...

Как поменять на экране иконку?
Стояла старая программа, удалил и установил новую (название точно такое же)....

8
iZEN
1 / 1 / 1
Регистрация: 18.08.2007
Сообщений: 289
01.02.2008, 00:53 #2
Установка иконки для диалога:
Java
1
2
3
4
public class AboutDlg extends AboutDialog {
  public AboutDlg(Frame parent) {
    setLogoImage(new ImageIcon(AboutDialog.class.getResource('image/myicon.gif')));
  }
окна:
Java
1
setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource('image/appicon.gif')));
где image/ -- подкаталог класса диалога или окна.


Сделать 'закрываемым' окно:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
//В конструкторе
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
....
//Обычный метод, переопределяющий предковый
protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if(e.getID() == WindowEvent.WINDOW_CLOSING) {
      try {
        System.gc();
        System.exit(0);//Выход из приложения
      } catch (Exception ex) {;}
    }
}
для диалога:
Java
1
2
3
4
5
6
7
8
9
10
11
12
...
//В конструкторе
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
...
//Обычный метод, переопределяющий предковый
protected void processWindowEvent(WindowEvent e) {
    if(e.getID() == WindowEvent.WINDOW_CLOSING) {
      cancel();//Вызов метода при закрытии
    }
    super.processWindowEvent(e);
  }
}
Вроде так.
Удачи!
0
iZEN
1 / 1 / 1
Регистрация: 18.08.2007
Сообщений: 289
01.02.2008, 00:57 #3
Добавочка.
Метод cancel():
Java
1
2
3
4
protected void cancel() {
  this.dispose();
  System.gc();
}
0
Maksim
03.02.2008, 12:49 #4
Что-то ничего не выходит... (((
this.setIconImage(Toolkit.getDefaultToolkit().createImage(demoframe.class.getResource('calc.gif')));
устанавливает иконку при запуске апплета в JBuilder.
При попытке просмотреть это в браузере появляется следующее сообщение в строке статуса:
error: java.lang.NoSuchMethodError: java/awt/Toolkit: method createImage(Ljava/awt/Image; not found

Попытки сделать окно закрываемым, тоже безуспешны.
Не найдены или Variable WindowConstants, или Method setDefaultCloseOperation...

Может не хватает каких-то деклараций?
Или данные методы не годятся для AWT окон?
iZEN
1 / 1 / 1
Регистрация: 18.08.2007
Сообщений: 289
03.02.2008, 23:19 #5
Скорее всего проблемы с Microsoft JVM (она не выше версии 1.1.4).
JBuilder (не знаю какой у Вас стоит) работает, как правило, с Java 2 (версии от 1.2 до 1.3), правда можно подключать и ранние.
Поэтому, используются Swing-пакеты, которые не входят в поставку Microsoft JVM.

Выход 1: попробуйте воспользоваться в JBuilder мастером создания приложений с использованием только AWT -- код отображения иконок должен сгенериться автоматически.

Выход 2: загрузить JRE1.3.1 вместе с plug-in-ом для Netscape и IE (около 8.6Мб) с сайта JavaSoft (поддерживаются апплеты Java 1 и Java 2 с тэгом <APPLET> в HTML-страничках в браузерах; кроме этого, можно будет запускать JAR-файлы Java-приложений как exe из проводника).
0
Maksim
03.02.2008, 23:31 #6
Пользуюсь версией 5.5 IE, пробовал и в шестой.
Использование Swing пакетов мне не подходит, и заставлять пользователей для просмотра апплета скачивать и устанавливать виртуальную машину тоже не дело.

Ведь как то же эти иконки устанавливаются?

Может все-таки кто-то знает? Или может кто-то может выслать рабочий пример?

Закрыть окно у меня тоже пока не получилось... (((
iZEN
1 / 1 / 1
Регистрация: 18.08.2007
Сообщений: 289
05.02.2008, 00:27 #7
Куча FAQ:
http://www.javapower.ru/faq/misc2.htm#q8
Может, найдётся что-то для Вас.
0
iZEN
1 / 1 / 1
Регистрация: 18.08.2007
Сообщений: 289
05.02.2008, 02:15 #8
Для потомков java.awt.Dialog нельзя установить иконку в углу заголовка.
Иконку в заголовке можно установить только для потомков java.awt.Frame.

Потомки java.applet.Applet вообще не могут иметь иконок в области заголовка, поскольку они не имеют заголовка вовсе и происходят от java.awt.Panel.
0
iZEN
1 / 1 / 1
Регистрация: 18.08.2007
Сообщений: 289
05.02.2008, 02:17 #9
Привожу демонстрационное AWT-приложение.

[code]
package demo1;
/**
* Title: Демонстрационное AWT-приложение
* Description: AWT-приложение
* Copyright: Copyright (c) 2001
* Company: <no company>
* @author iZEN
* @version 1.0
*/
import java.awt.*;

public class DemoApplication {
boolean packFrame = false;
/** Construct the application */
public DemoApplication() {
DemoFrame frame = new DemoFrame();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
/** Центрирование главного окна относительно экрана */
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
/** Main method */
public static void main(String[] args) {
new DemoApplication();
}
}

package demo1;
/**
* Title: Демонстрационное AWT-приложение
* Description: Главное окно с иконкой в углу
* Copyright: Copyright (c) 2001
* Company: <no company>
* @author iZEN
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;

public class DemoFrame extends Frame {
private Button button1 = new Button();
/** Construct the frame */
public DemoFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
} catch(Exception e) {
e.printStackTrace();
}
}
/** Component initialization */
private void jbInit() throws Exception {
this.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle('Frame Title');
this.add(button1, null);
/** Установка значка для окна
* Путь к значку: image/app.gif,
* где image -- подкаталог каталога нахождения класса окна,
* то есть файла DemoFrame.class
*/
this.setIconImage(Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource('image/app.gif')));
button1.setLabel('About');
button1.setBounds(new Rectangle(40, 41, 77, 27));
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
});
}
/** Overridden so we can exit when window is closed */
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
/** Вызов About-диалога */
void button1_actionPerformed(ActionEvent e) {
AboutBox a = new AboutBox(this);
//a.setModal(true);//Если хочется модально
a.setVisible(true);
a.toFront();
}
}

package demo1;
/**
* Title: Демонстрационное AWT-приложение
* Description: About-box
* Copyright: Copyright (c) 2001
* Company: <no company>
* @author iZEN
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;

public class AboutBox extends Dialog implements ActionListener {
private Panel contentPanel = new Panel();
private Label copyrightLabel = new Label();
private
0
05.02.2008, 02:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2008, 02:17
Привет! Вот еще темы с решениями:

Как поменять иконку проекта?
Добрый вечер. Столкнулся с проблемой - меняю иконку проекта в...

Как програмно поменять иконку у формы?
Как програмно поменять иконку у формы?

Как поменять иконку у exe файла
Мне нужна другая иконка для моего приложения на exe файле.Как её...

Как поменять иконку файла .exe?
Хотелось бы поменять иконку к chrome.exe с целью отображения данной иконки на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru