Das JoToSwingSnipped demonstriert die Verwendung der nativen Swing UI Referenz in einer jowidgets Applikation:
1 package org.jowidgets.examples.swing.snipped;
2
3 import java.awt.BorderLayout;
4
5 import javax.swing.JPanel;
6 import javax.swing.JTextPane;
7 import javax.swing.UIManager;
8
9 import org.jowidgets.api.layout.FillLayout;
10 import org.jowidgets.api.toolkit.Toolkit;
11 import org.jowidgets.api.widgets.IComposite;
12 import org.jowidgets.api.widgets.IFrame;
13 import org.jowidgets.common.application.IApplication;
14 import org.jowidgets.common.application.IApplicationLifecycle;
15 import org.jowidgets.tools.widgets.blueprint.BPF;
16
17 public final class JoToSwingSnipped implements IApplication {
18
19 @Override
20 public void start(final IApplicationLifecycle lifecycle) {
21 //create the root frame
22 final IFrame frame = Toolkit.createRootFrame(BPF.frame("JoToSwing Snipped"), lifecycle);
23 frame.setSize(800, 600);
24 frame.setLayout(FillLayout.get());
25
26 //create a regular jo composite
27 final IComposite joComposite = frame.add(BPF.composite());
28
29 //get the native ui reference which must be a JPanel
30 //because swing SPI impl is used
31 final JPanel panel = (JPanel) joComposite.getUiReference();
32 panel.setLayout(new BorderLayout());
33
34 //create a JTextPane and add it to the panel
35 final JTextPane textPane = new JTextPane();
36 panel.add(textPane);
37
38 //set the root frame visible
39 frame.setVisible(true);
40 }
41
42 public static void main(final String[] args) throws Exception {
43 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
44 System.setProperty("apple.laf.useScreenMenuBar", "true");
45 Toolkit.getApplicationRunner().run(new JoToSwingSnipped());
46 System.exit(0);
47 }
48 }