J/Link enables us to handle Java objects within MATHEMATICA. The MATHEMATICA package "JavaSwing.m" was designed as collection of wrapper functions for the Java Swing classes. All basic aspects of these functions are shown in this Notebook.
Copyright © 2000-2002, Junzo SATO. All rights reserved.
![[Graphics:Images/JavaSwingExample_gr_1.gif]](Images/JavaSwingExample_gr_1.gif)
![[Graphics:Images/JavaSwingExample_gr_2.gif]](Images/JavaSwingExample_gr_2.gif)
A MathJFrame is created.
![[Graphics:Images/JavaSwingExample_gr_7.gif]](Images/JavaSwingExample_gr_7.gif)
A frame has four panes in its JRootPane. The content pane is one of the most important object among these. Glass pane, layered pane, and menu bar are the rest of these. The menu bar is null by default.
![[Graphics:Images/JavaSwingExample_gr_9.gif]](Images/JavaSwingExample_gr_9.gif)
The frame is located to the center of the main screen and is shown.
![[Graphics:Images/JavaSwingExample_gr_13.gif]](Images/JavaSwingExample_gr_13.gif)
![[Graphics:Images/JavaSwingExample_gr_17.gif]](Images/JavaSwingExample_gr_17.gif)
Some constants for layers are listed.
![[Graphics:Images/JavaSwingExample_gr_21.gif]](Images/JavaSwingExample_gr_21.gif)
![[Graphics:Images/JavaSwingExample_gr_23.gif]](Images/JavaSwingExample_gr_23.gif)
We also list names of layers.
![[Graphics:Images/JavaSwingExample_gr_25.gif]](Images/JavaSwingExample_gr_25.gif)
An ImageIcon which will be shown on a title bar of the internal frame is loaded.
![[Graphics:Images/JavaSwingExample_gr_27.gif]](Images/JavaSwingExample_gr_27.gif)
JInternalFrame objects are added to the layer which is actually the layered pane of the frame.
A close box of an internal frame is not handled at now.
![[Graphics:Images/JavaSwingExample_gr_29.gif]](Images/JavaSwingExample_gr_29.gif)
JInternalFrame objects which is kept in the internalFrames are removed.
![[Graphics:Images/JavaSwingExample_gr_30.gif]](Images/JavaSwingExample_gr_30.gif)
A desktop is created. Internal frames are added to this desktop. The close box of the internal frame is handled correctly.
![[Graphics:Images/JavaSwingExample_gr_33.gif]](Images/JavaSwingExample_gr_33.gif)
![[Graphics:Images/JavaSwingExample_gr_35.gif]](Images/JavaSwingExample_gr_35.gif)
![[Graphics:Images/JavaSwingExample_gr_36.gif]](Images/JavaSwingExample_gr_36.gif)
![[Graphics:Images/JavaSwingExample_gr_37.gif]](Images/JavaSwingExample_gr_37.gif)
![[Graphics:Images/JavaSwingExample_gr_38.gif]](Images/JavaSwingExample_gr_38.gif)
![[Graphics:Images/JavaSwingExample_gr_41.gif]](Images/JavaSwingExample_gr_41.gif)
![[Graphics:Images/JavaSwingExample_gr_43.gif]](Images/JavaSwingExample_gr_43.gif)
![[Graphics:Images/JavaSwingExample_gr_44.gif]](Images/JavaSwingExample_gr_44.gif)
![[Graphics:Images/JavaSwingExample_gr_46.gif]](Images/JavaSwingExample_gr_46.gif)
![[Graphics:Images/JavaSwingExample_gr_48.gif]](Images/JavaSwingExample_gr_48.gif)
![[Graphics:Images/JavaSwingExample_gr_49.gif]](Images/JavaSwingExample_gr_49.gif)
![[Graphics:Images/JavaSwingExample_gr_50.gif]](Images/JavaSwingExample_gr_50.gif)
![[Graphics:Images/JavaSwingExample_gr_53.gif]](Images/JavaSwingExample_gr_53.gif)
![[Graphics:Images/JavaSwingExample_gr_55.gif]](Images/JavaSwingExample_gr_55.gif)
![[Graphics:Images/JavaSwingExample_gr_57.gif]](Images/JavaSwingExample_gr_57.gif)
![[Graphics:Images/JavaSwingExample_gr_59.gif]](Images/JavaSwingExample_gr_59.gif)
![[Graphics:Images/JavaSwingExample_gr_61.gif]](Images/JavaSwingExample_gr_61.gif)
![[Graphics:Images/JavaSwingExample_gr_63.gif]](Images/JavaSwingExample_gr_63.gif)
![[Graphics:Images/JavaSwingExample_gr_64.gif]](Images/JavaSwingExample_gr_64.gif)
![[Graphics:Images/JavaSwingExample_gr_65.gif]](Images/JavaSwingExample_gr_65.gif)
![[Graphics:Images/JavaSwingExample_gr_66.gif]](Images/JavaSwingExample_gr_66.gif)
![[Graphics:Images/JavaSwingExample_gr_67.gif]](Images/JavaSwingExample_gr_67.gif)
![[Graphics:Images/JavaSwingExample_gr_68.gif]](Images/JavaSwingExample_gr_68.gif)
![[Graphics:Images/JavaSwingExample_gr_69.gif]](Images/JavaSwingExample_gr_69.gif)
![[Graphics:Images/JavaSwingExample_gr_70.gif]](Images/JavaSwingExample_gr_70.gif)
![[Graphics:Images/JavaSwingExample_gr_72.gif]](Images/JavaSwingExample_gr_72.gif)
![[Graphics:Images/JavaSwingExample_gr_73.gif]](Images/JavaSwingExample_gr_73.gif)
![[Graphics:Images/JavaSwingExample_gr_74.gif]](Images/JavaSwingExample_gr_74.gif)
![[Graphics:Images/JavaSwingExample_gr_75.gif]](Images/JavaSwingExample_gr_75.gif)
![[Graphics:Images/JavaSwingExample_gr_76.gif]](Images/JavaSwingExample_gr_76.gif)
![[Graphics:Images/JavaSwingExample_gr_77.gif]](Images/JavaSwingExample_gr_77.gif)
![[Graphics:Images/JavaSwingExample_gr_78.gif]](Images/JavaSwingExample_gr_78.gif)
To respond to the change of the tab, you should install ChangeListener to JTabbedPane.
MathSwingChangeListener for J/Link is defined in JavaSwing.jar. The following is the source code.
MathSwingChangeListener.java
package JLinkProgramming.JavaSwing;
import com.wolfram.jlink.*;
import javax.swing.event.*;
public class MathSwingChangeListener extends MathListener implements ChangeListener {
public MathSwingChangeListener() {
super();
}
public MathSwingChangeListener(KernelLink ml) {
super(ml);
}
public MathSwingChangeListener(String func) {
this();
setHandler("stateChanged", func);
}
public void stateChanged(ChangeEvent e) {
Expr result = callMathHandler("stateChanged", new Object[]{e});
if (result != null)
result.dispose();
}
}
![[Graphics:Images/JavaSwingExample_gr_82.gif]](Images/JavaSwingExample_gr_82.gif)
![[Graphics:Images/JavaSwingExample_gr_93.gif]](Images/JavaSwingExample_gr_93.gif)
![[Graphics:Images/JavaSwingExample_gr_95.gif]](Images/JavaSwingExample_gr_95.gif)
![[Graphics:Images/JavaSwingExample_gr_97.gif]](Images/JavaSwingExample_gr_97.gif)
![[Graphics:Images/JavaSwingExample_gr_99.gif]](Images/JavaSwingExample_gr_99.gif)
![[Graphics:Images/JavaSwingExample_gr_100.gif]](Images/JavaSwingExample_gr_100.gif)
![[Graphics:Images/JavaSwingExample_gr_101.gif]](Images/JavaSwingExample_gr_101.gif)
![[Graphics:Images/JavaSwingExample_gr_102.gif]](Images/JavaSwingExample_gr_102.gif)
![[Graphics:Images/JavaSwingExample_gr_104.gif]](Images/JavaSwingExample_gr_104.gif)
![[Graphics:Images/JavaSwingExample_gr_105.gif]](Images/JavaSwingExample_gr_105.gif)
![[Graphics:Images/JavaSwingExample_gr_106.gif]](Images/JavaSwingExample_gr_106.gif)
![[Graphics:Images/JavaSwingExample_gr_107.gif]](Images/JavaSwingExample_gr_107.gif)
![[Graphics:Images/JavaSwingExample_gr_108.gif]](Images/JavaSwingExample_gr_108.gif)
![[Graphics:Images/JavaSwingExample_gr_109.gif]](Images/JavaSwingExample_gr_109.gif)
![[Graphics:Images/JavaSwingExample_gr_112.gif]](Images/JavaSwingExample_gr_112.gif)
![[Graphics:Images/JavaSwingExample_gr_114.gif]](Images/JavaSwingExample_gr_114.gif)
![[Graphics:Images/JavaSwingExample_gr_115.gif]](Images/JavaSwingExample_gr_115.gif)
![[Graphics:Images/JavaSwingExample_gr_116.gif]](Images/JavaSwingExample_gr_116.gif)
![[Graphics:Images/JavaSwingExample_gr_117.gif]](Images/JavaSwingExample_gr_117.gif)
![[Graphics:Images/JavaSwingExample_gr_120.gif]](Images/JavaSwingExample_gr_120.gif)
![[Graphics:Images/JavaSwingExample_gr_122.gif]](Images/JavaSwingExample_gr_122.gif)
![[Graphics:Images/JavaSwingExample_gr_124.gif]](Images/JavaSwingExample_gr_124.gif)
![[Graphics:Images/JavaSwingExample_gr_125.gif]](Images/JavaSwingExample_gr_125.gif)
![[Graphics:Images/JavaSwingExample_gr_127.gif]](Images/JavaSwingExample_gr_127.gif)
Because we pass the string object to the add( ) method of the container pane, the java.lang.String object is created temporally.
![[Graphics:Images/JavaSwingExample_gr_129.gif]](Images/JavaSwingExample_gr_129.gif)
![[Graphics:Images/JavaSwingExample_gr_130.gif]](Images/JavaSwingExample_gr_130.gif)
Change widths of west and east buttons.
![[Graphics:Images/JavaSwingExample_gr_132.gif]](Images/JavaSwingExample_gr_132.gif)
Change heights of north and south buttons.
![[Graphics:Images/JavaSwingExample_gr_133.gif]](Images/JavaSwingExample_gr_133.gif)
![[Graphics:Images/JavaSwingExample_gr_134.gif]](Images/JavaSwingExample_gr_134.gif)
![[Graphics:Images/JavaSwingExample_gr_135.gif]](Images/JavaSwingExample_gr_135.gif)
See <<< SimpleCardLayout >>>
SimpleCardLayout
![[Graphics:Images/JavaSwingExample_gr_138.gif]](Images/JavaSwingExample_gr_138.gif)
![[Graphics:Images/JavaSwingExample_gr_141.gif]](Images/JavaSwingExample_gr_141.gif)
![[Graphics:Images/JavaSwingExample_gr_143.gif]](Images/JavaSwingExample_gr_143.gif)
![[Graphics:Images/JavaSwingExample_gr_145.gif]](Images/JavaSwingExample_gr_145.gif)
![[Graphics:Images/JavaSwingExample_gr_146.gif]](Images/JavaSwingExample_gr_146.gif)
![[Graphics:Images/JavaSwingExample_gr_148.gif]](Images/JavaSwingExample_gr_148.gif)
![[Graphics:Images/JavaSwingExample_gr_150.gif]](Images/JavaSwingExample_gr_150.gif)
![[Graphics:Images/JavaSwingExample_gr_151.gif]](Images/JavaSwingExample_gr_151.gif)
![[Graphics:Images/JavaSwingExample_gr_154.gif]](Images/JavaSwingExample_gr_154.gif)
![[Graphics:Images/JavaSwingExample_gr_155.gif]](Images/JavaSwingExample_gr_155.gif)
![[Graphics:Images/JavaSwingExample_gr_158.gif]](Images/JavaSwingExample_gr_158.gif)
![[Graphics:Images/JavaSwingExample_gr_165.gif]](Images/JavaSwingExample_gr_165.gif)
![[Graphics:Images/JavaSwingExample_gr_168.gif]](Images/JavaSwingExample_gr_168.gif)
![[Graphics:Images/JavaSwingExample_gr_171.gif]](Images/JavaSwingExample_gr_171.gif)
![[Graphics:Images/JavaSwingExample_gr_174.gif]](Images/JavaSwingExample_gr_174.gif)
![[Graphics:Images/JavaSwingExample_gr_175.gif]](Images/JavaSwingExample_gr_175.gif)
![[Graphics:Images/JavaSwingExample_gr_176.gif]](Images/JavaSwingExample_gr_176.gif)
![[Graphics:Images/JavaSwingExample_gr_177.gif]](Images/JavaSwingExample_gr_177.gif)
![[Graphics:Images/JavaSwingExample_gr_180.gif]](Images/JavaSwingExample_gr_180.gif)
![[Graphics:Images/JavaSwingExample_gr_182.gif]](Images/JavaSwingExample_gr_182.gif)
![[Graphics:Images/JavaSwingExample_gr_184.gif]](Images/JavaSwingExample_gr_184.gif)
![[Graphics:Images/JavaSwingExample_gr_186.gif]](Images/JavaSwingExample_gr_186.gif)
![[Graphics:Images/JavaSwingExample_gr_188.gif]](Images/JavaSwingExample_gr_188.gif)
![[Graphics:Images/JavaSwingExample_gr_189.gif]](Images/JavaSwingExample_gr_189.gif)
the panel shrinks
![[Graphics:Images/JavaSwingExample_gr_191.gif]](Images/JavaSwingExample_gr_191.gif)
![[Graphics:Images/JavaSwingExample_gr_192.gif]](Images/JavaSwingExample_gr_192.gif)
the panel is spread horizontally by the glue
![[Graphics:Images/JavaSwingExample_gr_194.gif]](Images/JavaSwingExample_gr_194.gif)
![[Graphics:Images/JavaSwingExample_gr_196.gif]](Images/JavaSwingExample_gr_196.gif)
![[Graphics:Images/JavaSwingExample_gr_198.gif]](Images/JavaSwingExample_gr_198.gif)
![[Graphics:Images/JavaSwingExample_gr_199.gif]](Images/JavaSwingExample_gr_199.gif)
the panel shrinks
![[Graphics:Images/JavaSwingExample_gr_201.gif]](Images/JavaSwingExample_gr_201.gif)
the panel spreads itself
![[Graphics:Images/JavaSwingExample_gr_202.gif]](Images/JavaSwingExample_gr_202.gif)
![[Graphics:Images/JavaSwingExample_gr_204.gif]](Images/JavaSwingExample_gr_204.gif)
![[Graphics:Images/JavaSwingExample_gr_206.gif]](Images/JavaSwingExample_gr_206.gif)
![[Graphics:Images/JavaSwingExample_gr_208.gif]](Images/JavaSwingExample_gr_208.gif)
![[Graphics:Images/JavaSwingExample_gr_210.gif]](Images/JavaSwingExample_gr_210.gif)
![[Graphics:Images/JavaSwingExample_gr_212.gif]](Images/JavaSwingExample_gr_212.gif)
![[Graphics:Images/JavaSwingExample_gr_213.gif]](Images/JavaSwingExample_gr_213.gif)
![[Graphics:Images/JavaSwingExample_gr_216.gif]](Images/JavaSwingExample_gr_216.gif)
![[Graphics:Images/JavaSwingExample_gr_218.gif]](Images/JavaSwingExample_gr_218.gif)
![[Graphics:Images/JavaSwingExample_gr_220.gif]](Images/JavaSwingExample_gr_220.gif)
![[Graphics:Images/JavaSwingExample_gr_222.gif]](Images/JavaSwingExample_gr_222.gif)
![[Graphics:Images/JavaSwingExample_gr_224.gif]](Images/JavaSwingExample_gr_224.gif)
![[Graphics:Images/JavaSwingExample_gr_225.gif]](Images/JavaSwingExample_gr_225.gif)
![[Graphics:Images/JavaSwingExample_gr_228.gif]](Images/JavaSwingExample_gr_228.gif)
![[Graphics:Images/JavaSwingExample_gr_230.gif]](Images/JavaSwingExample_gr_230.gif)
![[Graphics:Images/JavaSwingExample_gr_232.gif]](Images/JavaSwingExample_gr_232.gif)
![[Graphics:Images/JavaSwingExample_gr_234.gif]](Images/JavaSwingExample_gr_234.gif)
![[Graphics:Images/JavaSwingExample_gr_235.gif]](Images/JavaSwingExample_gr_235.gif)
![[Graphics:Images/JavaSwingExample_gr_238.gif]](Images/JavaSwingExample_gr_238.gif)
![[Graphics:Images/JavaSwingExample_gr_240.gif]](Images/JavaSwingExample_gr_240.gif)
![[Graphics:Images/JavaSwingExample_gr_242.gif]](Images/JavaSwingExample_gr_242.gif)
![[Graphics:Images/JavaSwingExample_gr_244.gif]](Images/JavaSwingExample_gr_244.gif)
![[Graphics:Images/JavaSwingExample_gr_245.gif]](Images/JavaSwingExample_gr_245.gif)
![[Graphics:Images/JavaSwingExample_gr_246.gif]](Images/JavaSwingExample_gr_246.gif)
![[Graphics:Images/JavaSwingExample_gr_247.gif]](Images/JavaSwingExample_gr_247.gif)
![[Graphics:Images/JavaSwingExample_gr_248.gif]](Images/JavaSwingExample_gr_248.gif)
![[Graphics:Images/JavaSwingExample_gr_250.gif]](Images/JavaSwingExample_gr_250.gif)
![[Graphics:Images/JavaSwingExample_gr_252.gif]](Images/JavaSwingExample_gr_252.gif)
![[Graphics:Images/JavaSwingExample_gr_254.gif]](Images/JavaSwingExample_gr_254.gif)
com.sun.java.swing.plaf.windows.WindowsLookAndFeel
com.apple.mrj.swing.MacLookAndFeel
![[Graphics:Images/JavaSwingExample_gr_257.gif]](Images/JavaSwingExample_gr_257.gif)
![[Graphics:Images/JavaSwingExample_gr_259.gif]](Images/JavaSwingExample_gr_259.gif)
![[Graphics:Images/JavaSwingExample_gr_260.gif]](Images/JavaSwingExample_gr_260.gif)
![[Graphics:Images/JavaSwingExample_gr_263.gif]](Images/JavaSwingExample_gr_263.gif)
![[Graphics:Images/JavaSwingExample_gr_265.gif]](Images/JavaSwingExample_gr_265.gif)
![[Graphics:Images/JavaSwingExample_gr_266.gif]](Images/JavaSwingExample_gr_266.gif)
![[Graphics:Images/JavaSwingExample_gr_267.gif]](Images/JavaSwingExample_gr_267.gif)
![[Graphics:Images/JavaSwingExample_gr_269.gif]](Images/JavaSwingExample_gr_269.gif)
![[Graphics:Images/JavaSwingExample_gr_271.gif]](Images/JavaSwingExample_gr_271.gif)
![[Graphics:Images/JavaSwingExample_gr_273.gif]](Images/JavaSwingExample_gr_273.gif)
CDE/Motif
![[Graphics:Images/JavaSwingExample_gr_276.gif]](Images/JavaSwingExample_gr_276.gif)
![[Graphics:Images/JavaSwingExample_gr_277.gif]](Images/JavaSwingExample_gr_277.gif)
![[Graphics:Images/JavaSwingExample_gr_278.gif]](Images/JavaSwingExample_gr_278.gif)
![[Graphics:Images/JavaSwingExample_gr_279.gif]](Images/JavaSwingExample_gr_279.gif)
![[Graphics:Images/JavaSwingExample_gr_280.gif]](Images/JavaSwingExample_gr_280.gif)
![[Graphics:Images/JavaSwingExample_gr_283.gif]](Images/JavaSwingExample_gr_283.gif)
![[Graphics:Images/JavaSwingExample_gr_287.gif]](Images/JavaSwingExample_gr_287.gif)
![[Graphics:Images/JavaSwingExample_gr_288.gif]](Images/JavaSwingExample_gr_288.gif)
![[Graphics:Images/JavaSwingExample_gr_290.gif]](Images/JavaSwingExample_gr_290.gif)
![[Graphics:Images/JavaSwingExample_gr_293.gif]](Images/JavaSwingExample_gr_293.gif)
![[Graphics:Images/JavaSwingExample_gr_294.gif]](Images/JavaSwingExample_gr_294.gif)
![[Graphics:Images/JavaSwingExample_gr_296.gif]](Images/JavaSwingExample_gr_296.gif)
![[Graphics:Images/JavaSwingExample_gr_298.gif]](Images/JavaSwingExample_gr_298.gif)
![[Graphics:Images/JavaSwingExample_gr_300.gif]](Images/JavaSwingExample_gr_300.gif)
![[Graphics:Images/JavaSwingExample_gr_301.gif]](Images/JavaSwingExample_gr_301.gif)
![[Graphics:Images/JavaSwingExample_gr_303.gif]](Images/JavaSwingExample_gr_303.gif)
![[Graphics:Images/JavaSwingExample_gr_305.gif]](Images/JavaSwingExample_gr_305.gif)
Animation GIF is available too.
![[Graphics:Images/JavaSwingExample_gr_306.gif]](Images/JavaSwingExample_gr_306.gif)
![[Graphics:Images/JavaSwingExample_gr_310.gif]](Images/JavaSwingExample_gr_310.gif)
![[Graphics:Images/JavaSwingExample_gr_312.gif]](Images/JavaSwingExample_gr_312.gif)
![[Graphics:Images/JavaSwingExample_gr_313.gif]](Images/JavaSwingExample_gr_313.gif)
![[Graphics:Images/JavaSwingExample_gr_314.gif]](Images/JavaSwingExample_gr_314.gif)
![[Graphics:Images/JavaSwingExample_gr_315.gif]](Images/JavaSwingExample_gr_315.gif)
![[Graphics:Images/JavaSwingExample_gr_316.gif]](Images/JavaSwingExample_gr_316.gif)
![[Graphics:Images/JavaSwingExample_gr_317.gif]](Images/JavaSwingExample_gr_317.gif)
![[Graphics:Images/JavaSwingExample_gr_335.gif]](Images/JavaSwingExample_gr_335.gif)
![[Graphics:Images/JavaSwingExample_gr_339.gif]](Images/JavaSwingExample_gr_339.gif)
Simple label.
![[Graphics:Images/JavaSwingExample_gr_340.gif]](Images/JavaSwingExample_gr_340.gif)
A label with icon.
![[Graphics:Images/JavaSwingExample_gr_342.gif]](Images/JavaSwingExample_gr_342.gif)
![[Graphics:Images/JavaSwingExample_gr_344.gif]](Images/JavaSwingExample_gr_344.gif)
![[Graphics:Images/JavaSwingExample_gr_345.gif]](Images/JavaSwingExample_gr_345.gif)
![[Graphics:Images/JavaSwingExample_gr_346.gif]](Images/JavaSwingExample_gr_346.gif)
Opacity of the label is set by setOpaque method.
![[Graphics:Images/JavaSwingExample_gr_347.gif]](Images/JavaSwingExample_gr_347.gif)
![[Graphics:Images/JavaSwingExample_gr_348.gif]](Images/JavaSwingExample_gr_348.gif)
![[Graphics:Images/JavaSwingExample_gr_349.gif]](Images/JavaSwingExample_gr_349.gif)
![[Graphics:Images/JavaSwingExample_gr_350.gif]](Images/JavaSwingExample_gr_350.gif)
![[Graphics:Images/JavaSwingExample_gr_351.gif]](Images/JavaSwingExample_gr_351.gif)
![[Graphics:Images/JavaSwingExample_gr_354.gif]](Images/JavaSwingExample_gr_354.gif)
![[Graphics:Images/JavaSwingExample_gr_356.gif]](Images/JavaSwingExample_gr_356.gif)
![[Graphics:Images/JavaSwingExample_gr_357.gif]](Images/JavaSwingExample_gr_357.gif)
![[Graphics:Images/JavaSwingExample_gr_358.gif]](Images/JavaSwingExample_gr_358.gif)
![[Graphics:Images/JavaSwingExample_gr_359.gif]](Images/JavaSwingExample_gr_359.gif)
![[Graphics:Images/JavaSwingExample_gr_360.gif]](Images/JavaSwingExample_gr_360.gif)
![[Graphics:Images/JavaSwingExample_gr_361.gif]](Images/JavaSwingExample_gr_361.gif)
![[Graphics:Images/JavaSwingExample_gr_364.gif]](Images/JavaSwingExample_gr_364.gif)
![[Graphics:Images/JavaSwingExample_gr_365.gif]](Images/JavaSwingExample_gr_365.gif)
![[Graphics:Images/JavaSwingExample_gr_366.gif]](Images/JavaSwingExample_gr_366.gif)
![[Graphics:Images/JavaSwingExample_gr_367.gif]](Images/JavaSwingExample_gr_367.gif)
![[Graphics:Images/JavaSwingExample_gr_368.gif]](Images/JavaSwingExample_gr_368.gif)
![[Graphics:Images/JavaSwingExample_gr_369.gif]](Images/JavaSwingExample_gr_369.gif)
![[Graphics:Images/JavaSwingExample_gr_370.gif]](Images/JavaSwingExample_gr_370.gif)
![[Graphics:Images/JavaSwingExample_gr_371.gif]](Images/JavaSwingExample_gr_371.gif)
![[Graphics:Images/JavaSwingExample_gr_372.gif]](Images/JavaSwingExample_gr_372.gif)
![[Graphics:Images/JavaSwingExample_gr_373.gif]](Images/JavaSwingExample_gr_373.gif)
![[Graphics:Images/JavaSwingExample_gr_374.gif]](Images/JavaSwingExample_gr_374.gif)
![[Graphics:Images/JavaSwingExample_gr_376.gif]](Images/JavaSwingExample_gr_376.gif)
MatteBorder(int, int, int, int, java.awt.Color) |
MatteBorder(int, int, int, int, javax.swing.Icon) |
MatteBorder(java.awt.Insets, java.awt.Color) |
MatteBorder(java.awt.Insets, javax.swing.Icon) |
MatteBorder(javax.swing.Icon) |
![[Graphics:Images/JavaSwingExample_gr_377.gif]](Images/JavaSwingExample_gr_377.gif)
![[Graphics:Images/JavaSwingExample_gr_378.gif]](Images/JavaSwingExample_gr_378.gif)
![[Graphics:Images/JavaSwingExample_gr_379.gif]](Images/JavaSwingExample_gr_379.gif)
![[Graphics:Images/JavaSwingExample_gr_380.gif]](Images/JavaSwingExample_gr_380.gif)
![[Graphics:Images/JavaSwingExample_gr_381.gif]](Images/JavaSwingExample_gr_381.gif)
![[Graphics:Images/JavaSwingExample_gr_382.gif]](Images/JavaSwingExample_gr_382.gif)
![[Graphics:Images/JavaSwingExample_gr_383.gif]](Images/JavaSwingExample_gr_383.gif)
![[Graphics:Images/JavaSwingExample_gr_384.gif]](Images/JavaSwingExample_gr_384.gif)
![[Graphics:Images/JavaSwingExample_gr_385.gif]](Images/JavaSwingExample_gr_385.gif)
![[Graphics:Images/JavaSwingExample_gr_386.gif]](Images/JavaSwingExample_gr_386.gif)
![[Graphics:Images/JavaSwingExample_gr_387.gif]](Images/JavaSwingExample_gr_387.gif)
![[Graphics:Images/JavaSwingExample_gr_390.gif]](Images/JavaSwingExample_gr_390.gif)
![[Graphics:Images/JavaSwingExample_gr_391.gif]](Images/JavaSwingExample_gr_391.gif)
![[Graphics:Images/JavaSwingExample_gr_392.gif]](Images/JavaSwingExample_gr_392.gif)
![[Graphics:Images/JavaSwingExample_gr_393.gif]](Images/JavaSwingExample_gr_393.gif)
![[Graphics:Images/JavaSwingExample_gr_394.gif]](Images/JavaSwingExample_gr_394.gif)
![[Graphics:Images/JavaSwingExample_gr_395.gif]](Images/JavaSwingExample_gr_395.gif)
![[Graphics:Images/JavaSwingExample_gr_396.gif]](Images/JavaSwingExample_gr_396.gif)
![[Graphics:Images/JavaSwingExample_gr_397.gif]](Images/JavaSwingExample_gr_397.gif)
![[Graphics:Images/JavaSwingExample_gr_398.gif]](Images/JavaSwingExample_gr_398.gif)
![[Graphics:Images/JavaSwingExample_gr_399.gif]](Images/JavaSwingExample_gr_399.gif)
![[Graphics:Images/JavaSwingExample_gr_400.gif]](Images/JavaSwingExample_gr_400.gif)
![[Graphics:Images/JavaSwingExample_gr_404.gif]](Images/JavaSwingExample_gr_404.gif)
![[Graphics:Images/JavaSwingExample_gr_412.gif]](Images/JavaSwingExample_gr_412.gif)
![[Graphics:Images/JavaSwingExample_gr_413.gif]](Images/JavaSwingExample_gr_413.gif)
![[Graphics:Images/JavaSwingExample_gr_415.gif]](Images/JavaSwingExample_gr_415.gif)
![[Graphics:Images/JavaSwingExample_gr_416.gif]](Images/JavaSwingExample_gr_416.gif)
![[Graphics:Images/JavaSwingExample_gr_421.gif]](Images/JavaSwingExample_gr_421.gif)
![[Graphics:Images/JavaSwingExample_gr_422.gif]](Images/JavaSwingExample_gr_422.gif)
![[Graphics:Images/JavaSwingExample_gr_423.gif]](Images/JavaSwingExample_gr_423.gif)
![[Graphics:Images/JavaSwingExample_gr_426.gif]](Images/JavaSwingExample_gr_426.gif)
![[Graphics:Images/JavaSwingExample_gr_427.gif]](Images/JavaSwingExample_gr_427.gif)
![[Graphics:Images/JavaSwingExample_gr_428.gif]](Images/JavaSwingExample_gr_428.gif)
![[Graphics:Images/JavaSwingExample_gr_429.gif]](Images/JavaSwingExample_gr_429.gif)
![[Graphics:Images/JavaSwingExample_gr_430.gif]](Images/JavaSwingExample_gr_430.gif)
![[Graphics:Images/JavaSwingExample_gr_431.gif]](Images/JavaSwingExample_gr_431.gif)
![[Graphics:Images/JavaSwingExample_gr_432.gif]](Images/JavaSwingExample_gr_432.gif)
![[Graphics:Images/JavaSwingExample_gr_435.gif]](Images/JavaSwingExample_gr_435.gif)
![[Graphics:Images/JavaSwingExample_gr_436.gif]](Images/JavaSwingExample_gr_436.gif)
![[Graphics:Images/JavaSwingExample_gr_438.gif]](Images/JavaSwingExample_gr_438.gif)
![[Graphics:Images/JavaSwingExample_gr_440.gif]](Images/JavaSwingExample_gr_440.gif)
![[Graphics:Images/JavaSwingExample_gr_444.gif]](Images/JavaSwingExample_gr_444.gif)
Using icons is possible for the substitution of the default check mark.
To replace icons by the user's click, setIcon( ) method is available. An event handler also should be introduced.
![[Graphics:Images/JavaSwingExample_gr_448.gif]](Images/JavaSwingExample_gr_448.gif)
![[Graphics:Images/JavaSwingExample_gr_450.gif]](Images/JavaSwingExample_gr_450.gif)
![[Graphics:Images/JavaSwingExample_gr_451.gif]](Images/JavaSwingExample_gr_451.gif)
![[Graphics:Images/JavaSwingExample_gr_452.gif]](Images/JavaSwingExample_gr_452.gif)
![[Graphics:Images/JavaSwingExample_gr_453.gif]](Images/JavaSwingExample_gr_453.gif)
![[Graphics:Images/JavaSwingExample_gr_454.gif]](Images/JavaSwingExample_gr_454.gif)
![[Graphics:Images/JavaSwingExample_gr_455.gif]](Images/JavaSwingExample_gr_455.gif)
![[Graphics:Images/JavaSwingExample_gr_456.gif]](Images/JavaSwingExample_gr_456.gif)
![[Graphics:Images/JavaSwingExample_gr_457.gif]](Images/JavaSwingExample_gr_457.gif)
![[Graphics:Images/JavaSwingExample_gr_458.gif]](Images/JavaSwingExample_gr_458.gif)
![[Graphics:Images/JavaSwingExample_gr_459.gif]](Images/JavaSwingExample_gr_459.gif)
![[Graphics:Images/JavaSwingExample_gr_463.gif]](Images/JavaSwingExample_gr_463.gif)
![[Graphics:Images/JavaSwingExample_gr_466.gif]](Images/JavaSwingExample_gr_466.gif)
![[Graphics:Images/JavaSwingExample_gr_467.gif]](Images/JavaSwingExample_gr_467.gif)
![[Graphics:Images/JavaSwingExample_gr_469.gif]](Images/JavaSwingExample_gr_469.gif)
![[Graphics:Images/JavaSwingExample_gr_471.gif]](Images/JavaSwingExample_gr_471.gif)
![[Graphics:Images/JavaSwingExample_gr_475.gif]](Images/JavaSwingExample_gr_475.gif)
![[Graphics:Images/JavaSwingExample_gr_479.gif]](Images/JavaSwingExample_gr_479.gif)
![[Graphics:Images/JavaSwingExample_gr_481.gif]](Images/JavaSwingExample_gr_481.gif)
![[Graphics:Images/JavaSwingExample_gr_482.gif]](Images/JavaSwingExample_gr_482.gif)
![[Graphics:Images/JavaSwingExample_gr_483.gif]](Images/JavaSwingExample_gr_483.gif)
![[Graphics:Images/JavaSwingExample_gr_484.gif]](Images/JavaSwingExample_gr_484.gif)
![[Graphics:Images/JavaSwingExample_gr_485.gif]](Images/JavaSwingExample_gr_485.gif)
![[Graphics:Images/JavaSwingExample_gr_489.gif]](Images/JavaSwingExample_gr_489.gif)
a panel is created on the frame
![[Graphics:Images/JavaSwingExample_gr_492.gif]](Images/JavaSwingExample_gr_492.gif)
![[Graphics:Images/JavaSwingExample_gr_493.gif]](Images/JavaSwingExample_gr_493.gif)
buttons are created on the panel
![[Graphics:Images/JavaSwingExample_gr_495.gif]](Images/JavaSwingExample_gr_495.gif)
![[Graphics:Images/JavaSwingExample_gr_497.gif]](Images/JavaSwingExample_gr_497.gif)
![[Graphics:Images/JavaSwingExample_gr_498.gif]](Images/JavaSwingExample_gr_498.gif)
![[Graphics:Images/JavaSwingExample_gr_502.gif]](Images/JavaSwingExample_gr_502.gif)
![[Graphics:Images/JavaSwingExample_gr_503.gif]](Images/JavaSwingExample_gr_503.gif)
![[Graphics:Images/JavaSwingExample_gr_504.gif]](Images/JavaSwingExample_gr_504.gif)
![[Graphics:Images/JavaSwingExample_gr_505.gif]](Images/JavaSwingExample_gr_505.gif)
![[Graphics:Images/JavaSwingExample_gr_506.gif]](Images/JavaSwingExample_gr_506.gif)
![[Graphics:Images/JavaSwingExample_gr_509.gif]](Images/JavaSwingExample_gr_509.gif)
![[Graphics:Images/JavaSwingExample_gr_510.gif]](Images/JavaSwingExample_gr_510.gif)
![[Graphics:Images/JavaSwingExample_gr_512.gif]](Images/JavaSwingExample_gr_512.gif)
![[Graphics:Images/JavaSwingExample_gr_514.gif]](Images/JavaSwingExample_gr_514.gif)
![[Graphics:Images/JavaSwingExample_gr_515.gif]](Images/JavaSwingExample_gr_515.gif)
![[Graphics:Images/JavaSwingExample_gr_517.gif]](Images/JavaSwingExample_gr_517.gif)
![[Graphics:Images/JavaSwingExample_gr_519.gif]](Images/JavaSwingExample_gr_519.gif)
![[Graphics:Images/JavaSwingExample_gr_520.gif]](Images/JavaSwingExample_gr_520.gif)
![[Graphics:Images/JavaSwingExample_gr_521.gif]](Images/JavaSwingExample_gr_521.gif)
![[Graphics:Images/JavaSwingExample_gr_522.gif]](Images/JavaSwingExample_gr_522.gif)
![[Graphics:Images/JavaSwingExample_gr_523.gif]](Images/JavaSwingExample_gr_523.gif)
![[Graphics:Images/JavaSwingExample_gr_524.gif]](Images/JavaSwingExample_gr_524.gif)
![[Graphics:Images/JavaSwingExample_gr_528.gif]](Images/JavaSwingExample_gr_528.gif)
![[Graphics:Images/JavaSwingExample_gr_540.gif]](Images/JavaSwingExample_gr_540.gif)
![[Graphics:Images/JavaSwingExample_gr_557.gif]](Images/JavaSwingExample_gr_557.gif)
![[Graphics:Images/JavaSwingExample_gr_559.gif]](Images/JavaSwingExample_gr_559.gif)
![[Graphics:Images/JavaSwingExample_gr_561.gif]](Images/JavaSwingExample_gr_561.gif)
![[Graphics:Images/JavaSwingExample_gr_562.gif]](Images/JavaSwingExample_gr_562.gif)
![[Graphics:Images/JavaSwingExample_gr_563.gif]](Images/JavaSwingExample_gr_563.gif)
![[Graphics:Images/JavaSwingExample_gr_564.gif]](Images/JavaSwingExample_gr_564.gif)
![[Graphics:Images/JavaSwingExample_gr_565.gif]](Images/JavaSwingExample_gr_565.gif)
![[Graphics:Images/JavaSwingExample_gr_569.gif]](Images/JavaSwingExample_gr_569.gif)
![[Graphics:Images/JavaSwingExample_gr_575.gif]](Images/JavaSwingExample_gr_575.gif)
![[Graphics:Images/JavaSwingExample_gr_577.gif]](Images/JavaSwingExample_gr_577.gif)
![[Graphics:Images/JavaSwingExample_gr_579.gif]](Images/JavaSwingExample_gr_579.gif)
![[Graphics:Images/JavaSwingExample_gr_581.gif]](Images/JavaSwingExample_gr_581.gif)
![[Graphics:Images/JavaSwingExample_gr_582.gif]](Images/JavaSwingExample_gr_582.gif)
![[Graphics:Images/JavaSwingExample_gr_584.gif]](Images/JavaSwingExample_gr_584.gif)
![[Graphics:Images/JavaSwingExample_gr_586.gif]](Images/JavaSwingExample_gr_586.gif)
![[Graphics:Images/JavaSwingExample_gr_588.gif]](Images/JavaSwingExample_gr_588.gif)
![[Graphics:Images/JavaSwingExample_gr_589.gif]](Images/JavaSwingExample_gr_589.gif)
![[Graphics:Images/JavaSwingExample_gr_590.gif]](Images/JavaSwingExample_gr_590.gif)
![[Graphics:Images/JavaSwingExample_gr_591.gif]](Images/JavaSwingExample_gr_591.gif)
![[Graphics:Images/JavaSwingExample_gr_593.gif]](Images/JavaSwingExample_gr_593.gif)
![[Graphics:Images/JavaSwingExample_gr_594.gif]](Images/JavaSwingExample_gr_594.gif)
Although components added to create JTable were removed explicitly in the above expressions, JTableHeader still remains on the pane. So we tries to remove all components on the pane.
![[Graphics:Images/JavaSwingExample_gr_595.gif]](Images/JavaSwingExample_gr_595.gif)
To respond to the list selection, ListSelectionListener should be implemented. For J/Link, MathSwingListSelectionListener was defined by extending MathListener.
package JLinkProgramming.JavaSwing;
import com.wolfram.jlink.*;
import javax.swing.event.*;
public class MathSwingListSelectionListener extends MathListener implements ListSelectionListener {
public MathSwingListSelectionListener() {
super();
}
public MathSwingListSelectionListener(KernelLink ml) {
super(ml);
}
public MathSwingListSelectionListener(String func) {
this();
setHandler("valueChanged", func);
}
public void valueChanged(ListSelectionEvent e) {
Expr result = callMathHandler("valueChanged", new Object[]{e});
if (result != null)
result.dispose();
}
}
![[Graphics:Images/JavaSwingExample_gr_599.gif]](Images/JavaSwingExample_gr_599.gif)
![[Graphics:Images/JavaSwingExample_gr_606.gif]](Images/JavaSwingExample_gr_606.gif)
![[Graphics:Images/JavaSwingExample_gr_607.gif]](Images/JavaSwingExample_gr_607.gif)
![[Graphics:Images/JavaSwingExample_gr_609.gif]](Images/JavaSwingExample_gr_609.gif)
![[Graphics:Images/JavaSwingExample_gr_611.gif]](Images/JavaSwingExample_gr_611.gif)
![[Graphics:Images/JavaSwingExample_gr_612.gif]](Images/JavaSwingExample_gr_612.gif)
![[Graphics:Images/JavaSwingExample_gr_613.gif]](Images/JavaSwingExample_gr_613.gif)
![[Graphics:Images/JavaSwingExample_gr_616.gif]](Images/JavaSwingExample_gr_616.gif)
![[Graphics:Images/JavaSwingExample_gr_617.gif]](Images/JavaSwingExample_gr_617.gif)
![[Graphics:Images/JavaSwingExample_gr_619.gif]](Images/JavaSwingExample_gr_619.gif)
![[Graphics:Images/JavaSwingExample_gr_620.gif]](Images/JavaSwingExample_gr_620.gif)
![[Graphics:Images/JavaSwingExample_gr_622.gif]](Images/JavaSwingExample_gr_622.gif)
![[Graphics:Images/JavaSwingExample_gr_623.gif]](Images/JavaSwingExample_gr_623.gif)
![[Graphics:Images/JavaSwingExample_gr_626.gif]](Images/JavaSwingExample_gr_626.gif)
![[Graphics:Images/JavaSwingExample_gr_628.gif]](Images/JavaSwingExample_gr_628.gif)
![[Graphics:Images/JavaSwingExample_gr_630.gif]](Images/JavaSwingExample_gr_630.gif)
![[Graphics:Images/JavaSwingExample_gr_632.gif]](Images/JavaSwingExample_gr_632.gif)
![[Graphics:Images/JavaSwingExample_gr_633.gif]](Images/JavaSwingExample_gr_633.gif)
Cut, Copy, and Paste operations are available by calling JTextArea's methods.
By default, ctrl+x, ctrl+c, and ctrl+v are shortcuts for these commands.
![[Graphics:Images/JavaSwingExample_gr_634.gif]](Images/JavaSwingExample_gr_634.gif)
![[Graphics:Images/JavaSwingExample_gr_635.gif]](Images/JavaSwingExample_gr_635.gif)
![[Graphics:Images/JavaSwingExample_gr_636.gif]](Images/JavaSwingExample_gr_636.gif)
![[Graphics:Images/JavaSwingExample_gr_637.gif]](Images/JavaSwingExample_gr_637.gif)
![[Graphics:Images/JavaSwingExample_gr_638.gif]](Images/JavaSwingExample_gr_638.gif)
![[Graphics:Images/JavaSwingExample_gr_641.gif]](Images/JavaSwingExample_gr_641.gif)
![[Graphics:Images/JavaSwingExample_gr_643.gif]](Images/JavaSwingExample_gr_643.gif)
![[Graphics:Images/JavaSwingExample_gr_645.gif]](Images/JavaSwingExample_gr_645.gif)
![[Graphics:Images/JavaSwingExample_gr_647.gif]](Images/JavaSwingExample_gr_647.gif)
![[Graphics:Images/JavaSwingExample_gr_648.gif]](Images/JavaSwingExample_gr_648.gif)
![[Graphics:Images/JavaSwingExample_gr_649.gif]](Images/JavaSwingExample_gr_649.gif)
![[Graphics:Images/JavaSwingExample_gr_651.gif]](Images/JavaSwingExample_gr_651.gif)
![[Graphics:Images/JavaSwingExample_gr_653.gif]](Images/JavaSwingExample_gr_653.gif)
![[Graphics:Images/JavaSwingExample_gr_654.gif]](Images/JavaSwingExample_gr_654.gif)
![[Graphics:Images/JavaSwingExample_gr_657.gif]](Images/JavaSwingExample_gr_657.gif)
![[Graphics:Images/JavaSwingExample_gr_659.gif]](Images/JavaSwingExample_gr_659.gif)
![[Graphics:Images/JavaSwingExample_gr_661.gif]](Images/JavaSwingExample_gr_661.gif)
![[Graphics:Images/JavaSwingExample_gr_663.gif]](Images/JavaSwingExample_gr_663.gif)
![[Graphics:Images/JavaSwingExample_gr_665.gif]](Images/JavaSwingExample_gr_665.gif)
![[Graphics:Images/JavaSwingExample_gr_667.gif]](Images/JavaSwingExample_gr_667.gif)
![[Graphics:Images/JavaSwingExample_gr_669.gif]](Images/JavaSwingExample_gr_669.gif)
![[Graphics:Images/JavaSwingExample_gr_670.gif]](Images/JavaSwingExample_gr_670.gif)
![[Graphics:Images/JavaSwingExample_gr_671.gif]](Images/JavaSwingExample_gr_671.gif)
![[Graphics:Images/JavaSwingExample_gr_673.gif]](Images/JavaSwingExample_gr_673.gif)
![[Graphics:Images/JavaSwingExample_gr_674.gif]](Images/JavaSwingExample_gr_674.gif)
![[Graphics:Images/JavaSwingExample_gr_675.gif]](Images/JavaSwingExample_gr_675.gif)
![[Graphics:Images/JavaSwingExample_gr_676.gif]](Images/JavaSwingExample_gr_676.gif)
![[Graphics:Images/JavaSwingExample_gr_677.gif]](Images/JavaSwingExample_gr_677.gif)
![[Graphics:Images/JavaSwingExample_gr_678.gif]](Images/JavaSwingExample_gr_678.gif)
![[Graphics:Images/JavaSwingExample_gr_679.gif]](Images/JavaSwingExample_gr_679.gif)
![[Graphics:Images/JavaSwingExample_gr_680.gif]](Images/JavaSwingExample_gr_680.gif)
![[Graphics:Images/JavaSwingExample_gr_681.gif]](Images/JavaSwingExample_gr_681.gif)
![[Graphics:Images/JavaSwingExample_gr_682.gif]](Images/JavaSwingExample_gr_682.gif)
![[Graphics:Images/JavaSwingExample_gr_683.gif]](Images/JavaSwingExample_gr_683.gif)
![[Graphics:Images/JavaSwingExample_gr_684.gif]](Images/JavaSwingExample_gr_684.gif)
![[Graphics:Images/JavaSwingExample_gr_685.gif]](Images/JavaSwingExample_gr_685.gif)
![[Graphics:Images/JavaSwingExample_gr_687.gif]](Images/JavaSwingExample_gr_687.gif)
![[Graphics:Images/JavaSwingExample_gr_688.gif]](Images/JavaSwingExample_gr_688.gif)
![[Graphics:Images/JavaSwingExample_gr_689.gif]](Images/JavaSwingExample_gr_689.gif)
![[Graphics:Images/JavaSwingExample_gr_690.gif]](Images/JavaSwingExample_gr_690.gif)
![[Graphics:Images/JavaSwingExample_gr_693.gif]](Images/JavaSwingExample_gr_693.gif)
![[Graphics:Images/JavaSwingExample_gr_695.gif]](Images/JavaSwingExample_gr_695.gif)
![[Graphics:Images/JavaSwingExample_gr_699.gif]](Images/JavaSwingExample_gr_699.gif)
![[Graphics:Images/JavaSwingExample_gr_702.gif]](Images/JavaSwingExample_gr_702.gif)
![[Graphics:Images/JavaSwingExample_gr_704.gif]](Images/JavaSwingExample_gr_704.gif)
![[Graphics:Images/JavaSwingExample_gr_706.gif]](Images/JavaSwingExample_gr_706.gif)
![[Graphics:Images/JavaSwingExample_gr_708.gif]](Images/JavaSwingExample_gr_708.gif)
![]() |
|||||||||||||||||||||
|
![[Graphics:Images/JavaSwingExample_gr_731.gif]](Images/JavaSwingExample_gr_731.gif)
![[Graphics:Images/JavaSwingExample_gr_733.gif]](Images/JavaSwingExample_gr_733.gif)
![[Graphics:Images/JavaSwingExample_gr_734.gif]](Images/JavaSwingExample_gr_734.gif)
![[Graphics:Images/JavaSwingExample_gr_737.gif]](Images/JavaSwingExample_gr_737.gif)
![[Graphics:Images/JavaSwingExample_gr_738.gif]](Images/JavaSwingExample_gr_738.gif)
![[Graphics:Images/JavaSwingExample_gr_740.gif]](Images/JavaSwingExample_gr_740.gif)
![]() |
||||||||||||||||||||||||||||||||||||
|
![[Graphics:Images/JavaSwingExample_gr_778.gif]](Images/JavaSwingExample_gr_778.gif)
![[Graphics:Images/JavaSwingExample_gr_780.gif]](Images/JavaSwingExample_gr_780.gif)
![[Graphics:Images/JavaSwingExample_gr_781.gif]](Images/JavaSwingExample_gr_781.gif)
![[Graphics:Images/JavaSwingExample_gr_782.gif]](Images/JavaSwingExample_gr_782.gif)
MathSwingChangeListener was defined. See SimpleJTable section.
![[Graphics:Images/JavaSwingExample_gr_786.gif]](Images/JavaSwingExample_gr_786.gif)
![[Graphics:Images/JavaSwingExample_gr_789.gif]](Images/JavaSwingExample_gr_789.gif)
![[Graphics:Images/JavaSwingExample_gr_791.gif]](Images/JavaSwingExample_gr_791.gif)
![[Graphics:Images/JavaSwingExample_gr_793.gif]](Images/JavaSwingExample_gr_793.gif)
menu is removable
![[Graphics:Images/JavaSwingExample_gr_795.gif]](Images/JavaSwingExample_gr_795.gif)
by default, menu is added to the last location in the menubar
![[Graphics:Images/JavaSwingExample_gr_796.gif]](Images/JavaSwingExample_gr_796.gif)
adding the same menu object twice to the menubar can change the location of the menu in the menubar
![[Graphics:Images/JavaSwingExample_gr_798.gif]](Images/JavaSwingExample_gr_798.gif)
![[Graphics:Images/JavaSwingExample_gr_800.gif]](Images/JavaSwingExample_gr_800.gif)
menuitem
![[Graphics:Images/JavaSwingExample_gr_801.gif]](Images/JavaSwingExample_gr_801.gif)
![[Graphics:Images/JavaSwingExample_gr_807.gif]](Images/JavaSwingExample_gr_807.gif)
![[Graphics:Images/JavaSwingExample_gr_809.gif]](Images/JavaSwingExample_gr_809.gif)
imageicon
![[Graphics:Images/JavaSwingExample_gr_811.gif]](Images/JavaSwingExample_gr_811.gif)
![[Graphics:Images/JavaSwingExample_gr_812.gif]](Images/JavaSwingExample_gr_812.gif)
![[Graphics:Images/JavaSwingExample_gr_815.gif]](Images/JavaSwingExample_gr_815.gif)
![[Graphics:Images/JavaSwingExample_gr_816.gif]](Images/JavaSwingExample_gr_816.gif)
![[Graphics:Images/JavaSwingExample_gr_817.gif]](Images/JavaSwingExample_gr_817.gif)
menu@addSeparator[]
menu@add[JavaNew["javax.swing.JSeparator"]]
![[Graphics:Images/JavaSwingExample_gr_818.gif]](Images/JavaSwingExample_gr_818.gif)
![[Graphics:Images/JavaSwingExample_gr_820.gif]](Images/JavaSwingExample_gr_820.gif)
![[Graphics:Images/JavaSwingExample_gr_822.gif]](Images/JavaSwingExample_gr_822.gif)
![[Graphics:Images/JavaSwingExample_gr_824.gif]](Images/JavaSwingExample_gr_824.gif)
![[Graphics:Images/JavaSwingExample_gr_825.gif]](Images/JavaSwingExample_gr_825.gif)
![[Graphics:Images/JavaSwingExample_gr_826.gif]](Images/JavaSwingExample_gr_826.gif)
![[Graphics:Images/JavaSwingExample_gr_827.gif]](Images/JavaSwingExample_gr_827.gif)
![[Graphics:Images/JavaSwingExample_gr_828.gif]](Images/JavaSwingExample_gr_828.gif)
![[Graphics:Images/JavaSwingExample_gr_829.gif]](Images/JavaSwingExample_gr_829.gif)
![[Graphics:Images/JavaSwingExample_gr_830.gif]](Images/JavaSwingExample_gr_830.gif)
![[Graphics:Images/JavaSwingExample_gr_831.gif]](Images/JavaSwingExample_gr_831.gif)
![[Graphics:Images/JavaSwingExample_gr_832.gif]](Images/JavaSwingExample_gr_832.gif)
![[Graphics:Images/JavaSwingExample_gr_833.gif]](Images/JavaSwingExample_gr_833.gif)
![[Graphics:Images/JavaSwingExample_gr_834.gif]](Images/JavaSwingExample_gr_834.gif)
Although the menubar is released, the frame still contains and draws empty menubar.
We have to erase the menubar by setting Null.
![[Graphics:Images/JavaSwingExample_gr_835.gif]](Images/JavaSwingExample_gr_835.gif)
![[Graphics:Images/JavaSwingExample_gr_839.gif]](Images/JavaSwingExample_gr_839.gif)
Try right button click (Win) or ctrl+click (Mac) on the frame.
![[Graphics:Images/JavaSwingExample_gr_859.gif]](Images/JavaSwingExample_gr_859.gif)
![[Graphics:Images/JavaSwingExample_gr_865.gif]](Images/JavaSwingExample_gr_865.gif)
![[Graphics:Images/JavaSwingExample_gr_866.gif]](Images/JavaSwingExample_gr_866.gif)
![[Graphics:Images/JavaSwingExample_gr_868.gif]](Images/JavaSwingExample_gr_868.gif)
![[Graphics:Images/JavaSwingExample_gr_869.gif]](Images/JavaSwingExample_gr_869.gif)
![[Graphics:Images/JavaSwingExample_gr_871.gif]](Images/JavaSwingExample_gr_871.gif)
![[Graphics:Images/JavaSwingExample_gr_873.gif]](Images/JavaSwingExample_gr_873.gif)
![[Graphics:Images/JavaSwingExample_gr_875.gif]](Images/JavaSwingExample_gr_875.gif)
![[Graphics:Images/JavaSwingExample_gr_876.gif]](Images/JavaSwingExample_gr_876.gif)
![[Graphics:Images/JavaSwingExample_gr_877.gif]](Images/JavaSwingExample_gr_877.gif)
![[Graphics:Images/JavaSwingExample_gr_878.gif]](Images/JavaSwingExample_gr_878.gif)
![[Graphics:Images/JavaSwingExample_gr_879.gif]](Images/JavaSwingExample_gr_879.gif)
![[Graphics:Images/JavaSwingExample_gr_881.gif]](Images/JavaSwingExample_gr_881.gif)
![[Graphics:Images/JavaSwingExample_gr_883.gif]](Images/JavaSwingExample_gr_883.gif)
![[Graphics:Images/JavaSwingExample_gr_885.gif]](Images/JavaSwingExample_gr_885.gif)
![[Graphics:Images/JavaSwingExample_gr_886.gif]](Images/JavaSwingExample_gr_886.gif)
![[Graphics:Images/JavaSwingExample_gr_887.gif]](Images/JavaSwingExample_gr_887.gif)
![[Graphics:Images/JavaSwingExample_gr_888.gif]](Images/JavaSwingExample_gr_888.gif)
![[Graphics:Images/JavaSwingExample_gr_889.gif]](Images/JavaSwingExample_gr_889.gif)
Message
![[Graphics:Images/JavaSwingExample_gr_892.gif]](Images/JavaSwingExample_gr_892.gif)
![[Graphics:Images/JavaSwingExample_gr_893.gif]](Images/JavaSwingExample_gr_893.gif)
Yes No
![[Graphics:Images/JavaSwingExample_gr_896.gif]](Images/JavaSwingExample_gr_896.gif)
![[Graphics:Images/JavaSwingExample_gr_897.gif]](Images/JavaSwingExample_gr_897.gif)
Yes No Cancel
![[Graphics:Images/JavaSwingExample_gr_901.gif]](Images/JavaSwingExample_gr_901.gif)
![[Graphics:Images/JavaSwingExample_gr_902.gif]](Images/JavaSwingExample_gr_902.gif)
Selections
![[Graphics:Images/JavaSwingExample_gr_908.gif]](Images/JavaSwingExample_gr_908.gif)
![[Graphics:Images/JavaSwingExample_gr_909.gif]](Images/JavaSwingExample_gr_909.gif)
Text Input
![[Graphics:Images/JavaSwingExample_gr_913.gif]](Images/JavaSwingExample_gr_913.gif)
![[Graphics:Images/JavaSwingExample_gr_914.gif]](Images/JavaSwingExample_gr_914.gif)
![[Graphics:Images/JavaSwingExample_gr_918.gif]](Images/JavaSwingExample_gr_918.gif)
![[Graphics:Images/JavaSwingExample_gr_919.gif]](Images/JavaSwingExample_gr_919.gif)
![[Graphics:Images/JavaSwingExample_gr_920.gif]](Images/JavaSwingExample_gr_920.gif)
![[Graphics:Images/JavaSwingExample_gr_924.gif]](Images/JavaSwingExample_gr_924.gif)
![[Graphics:Images/JavaSwingExample_gr_926.gif]](Images/JavaSwingExample_gr_926.gif)
Color Chooser
Color Chooser With Default Color
JColorChooser is a handy tool to select a color. This component is easily added to the pane on the frame.
![[Graphics:Images/JavaSwingExample_gr_930.gif]](Images/JavaSwingExample_gr_930.gif)
![[Graphics:Images/JavaSwingExample_gr_932.gif]](Images/JavaSwingExample_gr_932.gif)
Defaut color is assigned at the initialization of the chooser.
![[Graphics:Images/JavaSwingExample_gr_935.gif]](Images/JavaSwingExample_gr_935.gif)
To get a resulting color chosen by the user, getColor[] etc are prepared.
![[Graphics:Images/JavaSwingExample_gr_937.gif]](Images/JavaSwingExample_gr_937.gif)
![[Graphics:Images/JavaSwingExample_gr_939.gif]](Images/JavaSwingExample_gr_939.gif)
![[Graphics:Images/JavaSwingExample_gr_943.gif]](Images/JavaSwingExample_gr_943.gif)
![[Graphics:Images/JavaSwingExample_gr_944.gif]](Images/JavaSwingExample_gr_944.gif)
![[Graphics:Images/JavaSwingExample_gr_947.gif]](Images/JavaSwingExample_gr_947.gif)
![[Graphics:Images/JavaSwingExample_gr_949.gif]](Images/JavaSwingExample_gr_949.gif)
![[Graphics:Images/JavaSwingExample_gr_955.gif]](Images/JavaSwingExample_gr_955.gif)
![[Graphics:Images/JavaSwingExample_gr_961.gif]](Images/JavaSwingExample_gr_961.gif)
![[Graphics:Images/JavaSwingExample_gr_963.gif]](Images/JavaSwingExample_gr_963.gif)
![[Graphics:Images/JavaSwingExample_gr_964.gif]](Images/JavaSwingExample_gr_964.gif)
![[Graphics:Images/JavaSwingExample_gr_967.gif]](Images/JavaSwingExample_gr_967.gif)
![[Graphics:Images/JavaSwingExample_gr_968.gif]](Images/JavaSwingExample_gr_968.gif)
![[Graphics:Images/JavaSwingExample_gr_969.gif]](Images/JavaSwingExample_gr_969.gif)
![[Graphics:Images/JavaSwingExample_gr_972.gif]](Images/JavaSwingExample_gr_972.gif)
![[Graphics:Images/JavaSwingExample_gr_973.gif]](Images/JavaSwingExample_gr_973.gif)
![[Graphics:Images/JavaSwingExample_gr_974.gif]](Images/JavaSwingExample_gr_974.gif)
![[Graphics:Images/JavaSwingExample_gr_978.gif]](Images/JavaSwingExample_gr_978.gif)
![[Graphics:Images/JavaSwingExample_gr_980.gif]](Images/JavaSwingExample_gr_980.gif)
![[Graphics:Images/JavaSwingExample_gr_982.gif]](Images/JavaSwingExample_gr_982.gif)
If there exists a selected node, names of its parents and path is constructed as follows.
![[Graphics:Images/JavaSwingExample_gr_985.gif]](Images/JavaSwingExample_gr_985.gif)
![[Graphics:Images/JavaSwingExample_gr_990.gif]](Images/JavaSwingExample_gr_990.gif)
![[Graphics:Images/JavaSwingExample_gr_991.gif]](Images/JavaSwingExample_gr_991.gif)
![[Graphics:Images/JavaSwingExample_gr_992.gif]](Images/JavaSwingExample_gr_992.gif)
![[Graphics:Images/JavaSwingExample_gr_993.gif]](Images/JavaSwingExample_gr_993.gif)
![[Graphics:Images/JavaSwingExample_gr_994.gif]](Images/JavaSwingExample_gr_994.gif)
To respond to the tree selection, MathSwingTreeSelectionListener was defined.
package JLinkProgramming.JavaSwing;
import com.wolfram.jlink.*;
import javax.swing.event.*;
public class MathSwingTreeSelectionListener extends MathListener implements TreeSelectionListener {
public MathSwingTreeSelectionListener() {
super();
}
public MathSwingTreeSelectionListener(KernelLink ml) {
super(ml);
}
public MathSwingTreeSelectionListener(String func) {
this();
setHandler("valueChanged", func);
}
public void valueChanged(TreeSelectionEvent e) {
Expr result = callMathHandler("valueChanged", new Object[]{e});
if (result != null)
result.dispose();
}
}
![[Graphics:Images/JavaSwingExample_gr_998.gif]](Images/JavaSwingExample_gr_998.gif)
![[Graphics:Images/JavaSwingExample_gr_1010.gif]](Images/JavaSwingExample_gr_1010.gif)
![[Graphics:Images/JavaSwingExample_gr_1014.gif]](Images/JavaSwingExample_gr_1014.gif)
![[Graphics:Images/JavaSwingExample_gr_1019.gif]](Images/JavaSwingExample_gr_1019.gif)
![[Graphics:Images/JavaSwingExample_gr_1021.gif]](Images/JavaSwingExample_gr_1021.gif)
![[Graphics:Images/JavaSwingExample_gr_1022.gif]](Images/JavaSwingExample_gr_1022.gif)
![[Graphics:Images/JavaSwingExample_gr_1023.gif]](Images/JavaSwingExample_gr_1023.gif)
![[Graphics:Images/JavaSwingExample_gr_1024.gif]](Images/JavaSwingExample_gr_1024.gif)
![[Graphics:Images/JavaSwingExample_gr_1026.gif]](Images/JavaSwingExample_gr_1026.gif)
[1] Satyaraj Pantham, "Pure JFC Swing", Sams Publishing, 1999