@Time_Lords

JDialog не отображается в браузере?

Есть вот такой код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Hello extends JDialog {
	public Hello(JFrame jfr) {
		super(jfr, true);
		JButton ok = new JButton("ok");
		ok.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				setVisible(false);
			}	
		});
		setSize(100,100);
		pack();
		setVisible(true);
	}
}


public class test extends JApplet {

	public void init() {
		try {
			SwingUtilities.invokeAndWait(new Runnable () {
				public void run () {
					makeGui();
				}
			});
		}
		catch (Exception e) {
			System.out.println(e);
		}
	}

	public void makeGui () {
		setLayout(new FlowLayout());

		JButton tb = new JButton("test");
		add(tb);
		Hello hello = new Hello(null);
		setVisible(true);
	}
}


Данный апплет вызывается из html страницы вида:
<!DOCTYPE html>
<html>
<body>
<applet code="test.class" width = 1000 height = 750>ehwlhewle </applet>
</body>
</html>


При попытке запуска в браузере Firefox получаю просто белую страницу, диалоговое окно Hello не выводится. При этом диалоговые окна, вызываемые через JOptionPane.showMessageDialog работают нормально.

OS - Archlinux, Java - 1.8

Что я делаю не так?
  • Вопрос задан
  • 2415 просмотров
Решения вопроса 1
1. Вы ничего не добавили в этот диалог. Вернее, в его content pane. И не забудьте про LayoutManager.
2. Вызов setSize() игнорируется, поскольку после него вы вызвали pack().

Ну и не надо setVisible() вызывать в конструкторе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы