PDA

Просмотр полной версии : Java, Applet, JDialog нужен совет!



Ledi
20.01.2005, 18:29
Народ, помогите первоклашке:)!

Вопрос таков: Есть апплет(костяк) и диалоговое окошко для входа в систему (JDialog).Kак связать их друг с другом, ума не приложу:(. Нужно: чтобы, когда пользователь открывал WebBrowser у него появлялось окошко авторизации и из него он бы потом попадал в другое окно, все это нужно сделать на основе апплета. Пример программки JDialog у меня есть, но вот как осушествить привязку ее к апплету и как потом переити из одного окна в другое....Может кто-нить подкинет простенький пример, а, профи?Буду очень благодарна!

AiK
20.01.2005, 18:49
Ledi, сразу вопрос: апплет рассчитывается делать для возможно большего числа посетителей или только для тех у кого плагин установлен? Бо IE Swing не поддерживает.

Kolinus
20.01.2005, 19:53
На самом деле ничего сложного нет.
Диалог делается модальным (есть соответствующий метод у класса диалога).
После визуализации диалога вставляется код визуализации другого окна (диалога и т.д.) - конкретнее не указано что надо
в апплете сразу выполняется метод start

Ledi
21.01.2005, 16:04
спасибо, народ! Буду пытаться, хотя без примера довольно сложно.Может еще кто подскажет. Создаю в апплете JMenu, которое состоит из submenu.Хочу добавить в одном из пунктов submenu -icon, почему-то не получается. Т.е. я вижу, что что-то добавлено(текст сдвигается), но сам рисунок не отображается, может я что-то упустила, подскажите.Вот фрагмент программы:

menuBar = new JMenuBar();
menu1 = new JMenu("change");

submenu1 = new JMenu("change 1");
submenu2 = new JMenu("change 2");

ImageIcon image = new ImageIcon("/images/image.gif");
submenu1.setIcon(image);

menu1.add(submenu1);

Kolinus
21.01.2005, 16:57
ImageIcon image = new ImageIcon("/images/image.gif");
по ходу данный код пытается подгрузить иконку с диска C из паки images - может здесь грабля ?

Ledi
21.01.2005, 18:21
да нет, путь указан верно, класс и картинка находится в одном проекте (среда разработки eclipse , тестирую с помощью Appletviewer)

Kolinus
21.01.2005, 18:31
Леди - ImageIcon image = new ImageIcon("/images/image.gif");
и
ImageIcon image = new ImageIcon("images/image.gif");
ImageIcon image = new ImageIcon("./images/image.gif");
не одно и тоже.
Полный код Вы не выкладываете - но даю 95% гарантии что грабли именно здесь
путь начинающийся с символа "/" - начинается с точки монтирования (для никс систем) или с корня диска С для вин систем

Ledi
21.01.2005, 19:23
Я бы рада была, если проблема была бы здесь:( Kолинус, а вы не могли бы мне привести пример малюсенькой элементарной программки, Апплета с менюшкой, в одной из submenu которой был бы и текст и рисунок. Может я ошибаюсь не здесь. А я бы протестировала у себя ваш пример. Пож-ста, а то с ума уже схожу:)

Oleg_S
24.01.2005, 01:31
Проект в Eclipse, да и в другой среде тоже, не есть онлайн.
Вряд ли твоя иконка, Леди, "придет" в твой апплет, тем более что она (иконка) и исполняемый класс лежат в разных директориях.
Даже если ты на СВОЕЙ машине изменишь политику безопасности для апплетов это совсем не означает, что твои потенциальные пользователи сделают тоже самое.
Это конечно далеко не идеал, но посмотри:


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

public final class AplPan extends JApplet{

public final void init(){
final JComponent contentPane=(JComponent)getContentPane();
final JPanel panel = new JPanel();
//новый вид курсора
final Cursor hand = new Cursor(Cursor.HAND_CURSOR);
//переопределяем менеджер размещения
contentPane.setLayout(new BorderLayout());
//создаем панель меню
final JMenuBar mainMenu = new JMenuBar();
final JMenu menuHelp = new JMenu(" Information ");
menuHelp.setCursor(hand);
final JMenuItem menuAbout = new JMenuItem("About",KeyEvent.VK_A);
menuAbout.setCursor(hand);
//иконка в меню
ImageIcon image = new ImageIcon("flower.jpg");
menuAbout.setIcon(image);
//добавление подсказки в меню Information/About (нажать Alt+A)
menuAbout.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_A, ActionEvent.ALT_MASK));
menuAbout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
final String infomsg = (
"<html><font color=#FF00FD size=4>"
+"

Design by Oleg_S</font>"
+"

<font color=green size=6>"
+"Welcom to Java "+
"</font></html>\n\n");
JOptionPane.showMessageDialog(
AplPan.this,infomsg,"Информационное сообщение !!!",JOptionPane.INFORMATION_MESSAGE
);
}
});
menuHelp.add(menuAbout);
mainMenu.add(menuHelp);
contentPane.add(mainMenu,BorderLayout.NORTH);
contentPane.add(panel,BorderLayout.CENTER);
contentPane.setPreferredSize(new Dimension(500,350));
contentPane.setBorder(BorderFactory.createEmptyBor der(15,15,15,15));
setVisible(true);
}
}

Не претендую на истину, да и код просто урезал из своих старых исходников.

Ledi
24.01.2005, 11:43
все, почти сдаюсь:( Олег, спасибо вам за пример. Попробовала протестировать ваш класс со своей icon, не отображается:(Но дело точно не в пути! Протестировала с теми же условиями и с тем же указанием пути к рисунку другой пример, в нем я icon вижу, значит дело не в пути. Может в размере icon???Профи, где вы? Помогите решить проблему!

Ledi
24.01.2005, 18:28
исправлюсь...рисунок получилось увидеть в JFrame:(, а в апплете все никак...так как все-таки правильно указать путь???

Kolinus
24.01.2005, 19:23
Леди.
kos_gremlin собака mail.ru
дайте в Вашу иконку - может дело и вправду в ней

Kolinus
25.01.2005, 16:26
import javax.swing.*;
import java.awt.BorderLayout;

public class IconApplet extends JApplet{
public void init(){
getContentPane().setLayout(new BorderLayout());
JMenuBar mainMenu=new JMenuBar();
getContentPane().add(mainMenu,BorderLayout.NORTH);
JMenu menu=new JMenu("Test Menu");
mainMenu.add(menu);
JMenuItem jmi[]=new JMenuItem[2];
jmi[0]=new JMenuItem("test submenu1");
jmi[1]=new JMenuItem("test submenu2",new ImageIcon("./middle.gif"));
menu.add(jmi[0]);
menu.add(jmi[1]);
}
}

Ledi
27.01.2005, 12:21
все равно не вижу, значит дело действительно в пути:(

Kolinus
27.01.2005, 16:53
этот код работал в следующих условиях:
java_1_4_2_04
html, applet, icon в одной папке.
тестировал appletviewer'ом

Ledi
31.01.2005, 13:07
Спасибо всем за помощь!