Spec-Zone .ru
спецификации, руководства, описания, API
|
Приложение, разработанное, используя компонентно-ориентированную архитектуру, может быть разработано в апплет Java. Рассмотрите пример апплета Java с основанным на Swing графическим интерфейсом пользователя (GUI). С компонентно-ориентированным проектом GUI может быть создан с меньшими стандартными блоками или компонентами. Следующие общие шаги используются, чтобы создать GUI апплета:
MyTopJPanel
это - подкласс javax.swing.JPanel
. Разметьте компоненты GUI своего апплета в конструкторе MyTopJPanel
class.MyApplet
это - подкласс javax.swing.JApplet
.init
метод MyApplet
, инстанцировать MyTopJPanel
и набор это как область контента апплета.Следующие разделы исследуют эти шаги более подробно при использовании Динамического Древовидного Демонстрационного апплета. Если Вы не знакомы с Swing, см. Создание GUI с Swing, чтобы узнать больше об использовании компонентов GUI Swing.
Если Вы не видите, что апплет работает, удостоверьтесь, что у Вас есть, по крайней мере, Java 2 Платформы, Standard Edition (J2SE) 1.4.2 выпуска на Вашем клиенте. В противном случае
Если Вы не видите, что пример работает, Вы, возможно, должны были бы включить интерпретатору JavaScript в своем браузере так, чтобы сценарий Инструментария Развертывания мог функционировать должным образом.
JPanel
КлассСоздайте class, который является подклассом JPanel
. Эта вершина JPanel
действия как контейнер для всех Ваших других компонентов UI. В следующем примере, DynamicTreePanel
class является самым верхним JPanel
. Конструктор DynamicTreePanel
class вызывает другие методы, чтобы создать и разметить средства управления UI должным образом.
public class DynamicTreePanel extends JPanel implements ActionListener { private int newNodeSuffix = 1; private static String ADD_COMMAND = "add"; private static String REMOVE_COMMAND = "remove"; private static String CLEAR_COMMAND = "clear"; private DynamicTree treePanel; public DynamicTreePanel() { super(new BorderLayout()); //Create the components. treePanel = new DynamicTree(); populateTree(treePanel); JButton addButton = new JButton("Add"); addButton.setActionCommand(ADD_COMMAND); addButton.addActionListener(this); JButton removeButton = new JButton("Remove"); // ... JButton clearButton = new JButton("Clear"); // ... //Lay everything out. treePanel.setPreferredSize( new Dimension(300, 150)); add(treePanel, BorderLayout.CENTER); JPanel panel = new JPanel(new GridLayout(0,3)); panel.add(addButton); panel.add(removeButton); panel.add(clearButton); add(panel, BorderLayout.SOUTH); } // ... }
Для апплета Java, у которого есть основанный на Swing GUI, создайте class, который является подклассом javax.swing.JApplet
. Апплет, который не содержит основанный на Swing GUI, может расшириться java.applet.Applet
class.
Переопределите апплет init
метод, чтобы инстанцировать Вашей вершины JPanel
class и создает GUI апплета. init
метод DynamicTreeApplet
class вызывает createGUI
метод в потоке Диспетчера События AWT.
package appletComponentArch; import javax.swing.JApplet; import javax.swing.SwingUtilities; public class DynamicTreeApplet extends JApplet { //Called when this applet is loaded into the browser. public void init() { //Execute a job on the event-dispatching thread; creating this applet's GUI. try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { createGUI(); } }); } catch (Exception e) { System.err.println("createGUI didn't complete successfully"); } } private void createGUI() { //Create and set up the content pane. DynamicTreePanel newContentPane = new DynamicTreePanel(); newContentPane.setOpaque(true); setContentPane(newContentPane); } }
Другой способ создать апплет состоит в том, чтобы только удалить уровень абстракции (отдельная вершина JPanel
) и разметьте все средства управления в апплете init
метод непосредственно. Нижняя сторона к созданию GUI непосредственно в апплете - то, что теперь будет более трудно развернуть Вашу функциональность, поскольку Сеть Java Запускает приложение, если Вы хотите делать столь позже.
В Динамическом Древовидном Демонстрационном примере базовая функциональность находится в DynamicTreePanel
class. Это теперь тривиально, чтобы отбросить DynamicTreePanel
class в a JFrame
и развернитесь, поскольку Сеть Java Запускает приложение.
Следовательно, чтобы сохранить мобильность и сохранить открытые опции развертывания, следуйте за компонентно-ориентированным проектом как описано на этой странице.