Die Integration in Swing funktioniert analog zu SWT. Es folgen die gleichen Beispiele wie für SWT jetzt für Swing.
Das SwingToJoFramesSnipped demonstriert die Erzeugung von Fenstern innerhalb einer nativen Swing Applikation:
1 package org.jowidgets.examples.swing.snipped;
2
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
5
6 import javax.swing.JButton;
7 import javax.swing.JFrame;
8 import javax.swing.SwingUtilities;
9 import javax.swing.UIManager;
10
11 import net.miginfocom.swing.MigLayout;
12
13 import org.jowidgets.api.toolkit.Toolkit;
14 import org.jowidgets.api.widgets.IFrame;
15 import org.jowidgets.api.widgets.blueprint.IDialogBluePrint;
16 import org.jowidgets.api.widgets.blueprint.IFrameBluePrint;
17 import org.jowidgets.common.types.Dimension;
18 import org.jowidgets.tools.widgets.blueprint.BPF;
19
20 public final class SwingToJoFramesSnipped {
21
22 private SwingToJoFramesSnipped() {}
23
24 public static void main(final String[] args) throws Exception {
25 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
26 SwingUtilities.invokeLater(new Runnable() {
27 @Override
28 public void run() {
29 createAndShowJFrame();
30 }
31 });
32 }
33
34 private static void createAndShowJFrame() {
35 //create the root frame with swing
36 final JFrame frame = new JFrame();
37 frame.setSize(1024, 768);
38 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
39 frame.setLayout(new MigLayout("", "[]", "[][]"));
40
41 //add button to open a jowidgets root frame
42 final JButton frameButton = new JButton("Create root frame");
43 frame.add(frameButton);
44 frameButton.addActionListener(new ActionListener() {
45 @Override
46 public void actionPerformed(final ActionEvent e) {
47 final IFrameBluePrint frameBp = BPF.frame("Jowidgets Root Frame");
48 frameBp.setSize(new Dimension(400, 300));
49 frameBp.setAutoDispose(true);
50 final IFrame frame = Toolkit.createRootFrame(frameBp);
51 frame.add(BPF.textLabel("This is a jowidgets root frame"));
52 frame.setVisible(true);
53 }
54 });
55
56 //add button to open a jowidgets modal dialog
57 final JButton dialogButton = new JButton("Create dialog");
58 frame.add(dialogButton);
59 dialogButton.addActionListener(new ActionListener() {
60 @Override
61 public void actionPerformed(final ActionEvent e) {
62 final IDialogBluePrint dialogBp = BPF.dialog("Jowidgets dialog");
63 dialogBp.setSize(new Dimension(400, 300));
64 final IFrame dialog = Toolkit.getWidgetFactory().create(frame, dialogBp);
65 dialog.add(BPF.textLabel("This is a jowidgets modal dialog"));
66 dialog.setVisible(true);
67 }
68 });
69
70 //show the frame
71 frame.setVisible(true);
72 }
73
74 }
Das
SwingToJoCompositeSnipped
demonstriert die Erzeugung eines IComposite
Wrapper innerhalb einer nativen Swing Applikation:
1 package org.jowidgets.examples.swing.snipped;
2
3 import javax.swing.JFrame;
4 import javax.swing.JPanel;
5 import javax.swing.SwingUtilities;
6 import javax.swing.UIManager;
7
8 import net.miginfocom.swing.MigLayout;
9
10 import org.jowidgets.api.widgets.IComposite;
11 import org.jowidgets.api.widgets.IInputField;
12 import org.jowidgets.common.widgets.controller.IInputListener;
13 import org.jowidgets.common.widgets.layout.MigLayoutDescriptor;
14 import org.jowidgets.spi.impl.swing.addons.SwingToJoWrapper;
15 import org.jowidgets.tools.widgets.blueprint.BPF;
16
17 public final class SwingToJoCompositeSnipped {
18
19 private SwingToJoCompositeSnipped() {}
20
21 public static void main(final String[] args) throws Exception {
22 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
23 SwingUtilities.invokeLater(new Runnable() {
24 @Override
25 public void run() {
26 createAndShowJFrame();
27 }
28 });
29 }
30
31 private static void createAndShowJFrame() {
32 //create the root frame with swing
33 final JFrame frame = new JFrame("SwingToJo composite snipped");
34 frame.setSize(400, 300);
35 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
36 frame.setLayout(new MigLayout("", "0[grow]0", "0[grow]0"));
37
38 //create a jpanel
39 final JPanel panel = new JPanel();
40 frame.add(panel, "growx, growy");
41
42 //create a jowidgets composite wrapper and do some jowidgets stuff
43 final IComposite joComposite = SwingToJoWrapper.create(panel);
44 joComposite.setLayout(new MigLayoutDescriptor("[][grow]", "[]"));
45
46 //add a label
47 joComposite.add(BPF.textLabel("Name"));
48
49 //add a input field for double values
50 final IInputField<String> nameField = joComposite.add(BPF.inputFieldString(), "grow x");
51 nameField.addInputListener(new IInputListener() {
52 @Override
53 public void inputChanged() {
54 //CHECKSTYLE:OFF
55 System.out.println("Hello " + nameField.getValue());
56 //CHECKSTYLE:ON
57 }
58 });
59
60 //show the frame
61 frame.setVisible(true);
62 }
63
64 }