swing_paradise 0.1.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of swing_paradise might be problematic. Click here for more details.

Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1557 -0
  3. data/doc/README.gen +1510 -0
  4. data/lib/swing_paradise/autoinclude.rb +3 -0
  5. data/lib/swing_paradise/awt/README.md +1 -0
  6. data/lib/swing_paradise/awt/color.rb +45 -0
  7. data/lib/swing_paradise/base_module/base_module.rb +993 -0
  8. data/lib/swing_paradise/classes +1 -0
  9. data/lib/swing_paradise/examples/001_quit_button_example.rb +55 -0
  10. data/lib/swing_paradise/examples/002_text_area_example.rb +55 -0
  11. data/lib/swing_paradise/examples/003_combo_box_example.rb +57 -0
  12. data/lib/swing_paradise/examples/004_jpanel_left_bound_example.rb +41 -0
  13. data/lib/swing_paradise/examples/005_box_layout_example.rb +39 -0
  14. data/lib/swing_paradise/examples/006_frame_example.rb +33 -0
  15. data/lib/swing_paradise/examples/007_textarea_responding_to_enter_key_example.rb +28 -0
  16. data/lib/swing_paradise/examples/008_scrolled_window_example.rb +41 -0
  17. data/lib/swing_paradise/examples/009_font_size_example.rb +39 -0
  18. data/lib/swing_paradise/examples/010_counter_example.rb +183 -0
  19. data/lib/swing_paradise/examples/011_button_with_image_example.rb +58 -0
  20. data/lib/swing_paradise/examples/012_quit_on_escape_key_being_pressed.rb +37 -0
  21. data/lib/swing_paradise/examples/013_simple_box_example.rb +38 -0
  22. data/lib/swing_paradise/examples/014_mouse_events_example.rb +41 -0
  23. data/lib/swing_paradise/examples/015_menu_example.rb +77 -0
  24. data/lib/swing_paradise/examples/016_file_chooser_example.rb +96 -0
  25. data/lib/swing_paradise/examples/017_buttons_example.rb +56 -0
  26. data/lib/swing_paradise/examples/018_colour_chooser_example.rb +51 -0
  27. data/lib/swing_paradise/examples/019_jeditorpane_example.rb +61 -0
  28. data/lib/swing_paradise/examples/020_table_example.rb +77 -0
  29. data/lib/swing_paradise/examples/021_jsplitpane_example.rb +66 -0
  30. data/lib/swing_paradise/examples/022_drawing_oval_example.rb +51 -0
  31. data/lib/swing_paradise/examples/023_show_message_dialog_example.rb +57 -0
  32. data/lib/swing_paradise/java_classes/border_factory/border_factory.rb +19 -0
  33. data/lib/swing_paradise/java_classes/box/box.rb +72 -0
  34. data/lib/swing_paradise/java_classes/button +1 -0
  35. data/lib/swing_paradise/java_classes/checkbox +1 -0
  36. data/lib/swing_paradise/java_classes/combobox +1 -0
  37. data/lib/swing_paradise/java_classes/default_table_model/default_table_model.rb +18 -0
  38. data/lib/swing_paradise/java_classes/frame +1 -0
  39. data/lib/swing_paradise/java_classes/jbutton/jbutton.rb +199 -0
  40. data/lib/swing_paradise/java_classes/jcheckbox/jcheckbox.rb +28 -0
  41. data/lib/swing_paradise/java_classes/jcombobox/jcombobox.rb +31 -0
  42. data/lib/swing_paradise/java_classes/jcomponent/jcomponent.rb +253 -0
  43. data/lib/swing_paradise/java_classes/jeditorpane/jeditorpane.rb +23 -0
  44. data/lib/swing_paradise/java_classes/jfilechooser/jfilechooser.rb +22 -0
  45. data/lib/swing_paradise/java_classes/jframe/jframe.rb +319 -0
  46. data/lib/swing_paradise/java_classes/jlabel/jlabel.rb +171 -0
  47. data/lib/swing_paradise/java_classes/jmenu/jmenu.rb +13 -0
  48. data/lib/swing_paradise/java_classes/jmenubar/jmenubar.rb +13 -0
  49. data/lib/swing_paradise/java_classes/jpanel/jpanel.rb +115 -0
  50. data/lib/swing_paradise/java_classes/jscrollpane/jscrollpane.rb +84 -0
  51. data/lib/swing_paradise/java_classes/jspinner/jspinner.rb +17 -0
  52. data/lib/swing_paradise/java_classes/jtextarea/jtextarea.rb +120 -0
  53. data/lib/swing_paradise/java_classes/jtextfield/jtextfield.rb +314 -0
  54. data/lib/swing_paradise/java_classes/label +1 -0
  55. data/lib/swing_paradise/java_classes/panel +1 -0
  56. data/lib/swing_paradise/java_classes/spinner +1 -0
  57. data/lib/swing_paradise/java_classes/textarea +1 -0
  58. data/lib/swing_paradise/misc/misc.rb +57 -0
  59. data/lib/swing_paradise/prototype/prototype.rb +79 -0
  60. data/lib/swing_paradise/requires/require_the_project.rb +15 -0
  61. data/lib/swing_paradise/toplevel_methods/misc.rb +293 -0
  62. data/lib/swing_paradise/version/version.rb +17 -0
  63. data/lib/swing_paradise/widget_collection/README.md +2 -0
  64. data/lib/swing_paradise/widget_collection/text_viewer.rb +160 -0
  65. data/lib/swing_paradise.rb +1 -0
  66. data/swing_paradise.gemspec +42 -0
  67. metadata +120 -0
@@ -0,0 +1,38 @@
1
+ require 'java'
2
+
3
+ java_import java.awt.Frame
4
+
5
+ class SimpleBoxExample < Frame
6
+
7
+ require 'swing_paradise/base_module/base_module.rb'
8
+ include SwingParadise::BaseModule
9
+
10
+ # ========================================================================= #
11
+ # === initialize
12
+ # ========================================================================= #
13
+ def initialize
14
+ super('SimpleBoxExample Example')
15
+ set_size(480, 180)
16
+ panel = new_boxlayout(:new_panel)
17
+ # panel.set_font(Font.new('Calibri', Font::PLAIN, 42))
18
+ panel.setBorder(
19
+ BorderFactory.createEmptyBorder(10, 10, 10, 10)
20
+ )
21
+
22
+ box = create_hbox
23
+ box.add(create_text('OK'))
24
+ box.add(
25
+ ImageIcon.new(
26
+ '/home/x/data/images/NJOY/Susanne_01.jpg'
27
+ )
28
+ )
29
+
30
+ panel.batch_add(box)
31
+ add(panel, BorderLayout::NORTH)
32
+ end
33
+
34
+ end
35
+
36
+ if __FILE__ == $PROGRAM_NAME
37
+ SimpleBoxExample.new.is_visible
38
+ end
@@ -0,0 +1,41 @@
1
+ require 'java'
2
+
3
+ java_import java.awt.Frame
4
+
5
+ class FrameExample < Frame
6
+
7
+ require 'swing_paradise/base_module/base_module.rb'
8
+ include SwingParadise::BaseModule
9
+
10
+ # ========================================================================= #
11
+ # === initialize
12
+ # ========================================================================= #
13
+ def initialize
14
+ super('014 mouse events example')
15
+ set_size(480, 180)
16
+ panel = JPanel.new(GridLayout.new(7, 1, 5, 5))
17
+ panel.use_this_font = :calibri_62
18
+ panel.uniform_border(20)
19
+
20
+ _ = BorderFactory.createTitledBorder(" Frame")
21
+ panel.setBorder(_)
22
+ panel.mouse_listener {|event| # Java::JavaAwtEvent::MouseEvent
23
+ if left_mouse_click?(event)
24
+ e 'The left mouse button was clicked.'
25
+ elsif middle_mouse_click?(event)
26
+ e 'The middle mouse button was clicked.'
27
+ elsif right_mouse_click?(event)
28
+ e 'The right mouse button was clicked.'
29
+ end
30
+ }
31
+ _ = bold_text('Mouse events example')
32
+ _.complex_font(:hack_35)
33
+ panel.add(_, JLabel::CENTER)
34
+ add(panel, BorderLayout::NORTH)
35
+ end
36
+
37
+ end
38
+
39
+ if __FILE__ == $PROGRAM_NAME
40
+ FrameExample.new.is_visible
41
+ end
@@ -0,0 +1,77 @@
1
+ require 'java'
2
+
3
+ java_import javax.swing.JFrame
4
+
5
+ module SwingParadise
6
+
7
+ class QuitButtonExample < JFrame
8
+
9
+ require 'swing_paradise'
10
+ include SwingParadise::BaseModule
11
+
12
+ require 'colours/html_colours'
13
+ include ::Colours::HtmlColours
14
+
15
+ # ========================================================================= #
16
+ # === initialize
17
+ # ========================================================================= #
18
+ def initialize(
19
+ run_already = true
20
+ )
21
+ run if run_already
22
+ end
23
+
24
+ # ========================================================================= #
25
+ # === run
26
+ # ========================================================================= #
27
+ def run
28
+ frame = frame('A menu example')
29
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
30
+ panel.use_this_font = :hack_85
31
+ frame.getContentPane.add(panel)
32
+ panel.setLayout(nil)
33
+ panel.hint = 'A quit button example'
34
+ _ = quit_button
35
+ _.set_bounds(10, 20, 200, 40)
36
+ panel << _
37
+ frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
38
+ frame.exit_on_close
39
+ frame.set_size(500, 400)
40
+ frame.setLocationRelativeTo(nil)
41
+
42
+ menu_bar = create_menubar # Create a new menubar here.
43
+ m1 = JMenu.new('General options') # The first menu.
44
+ menu_bar << m1
45
+ m2 = JMenu.new('Help') # The second menu.
46
+ m2.setEnabled(false)
47
+ menu_bar << m2
48
+
49
+ # Create the menu items and add them to the menus
50
+ first = menu_item('Entry #1')
51
+ second = menu_item('Entry #2')
52
+ third = menu_item('Entry #3')
53
+ fourth = menu_item('Entry #4')
54
+ fifth = menu_item('Entry #5')
55
+ m1 << first
56
+ m1 << (second)
57
+ m1 << (third)
58
+ m1 << (fourth)
59
+ m1 << (fifth)
60
+ first.addActionListener {|event|
61
+ e 'The first menu has been activated.'
62
+ action_command = event.get_action_command
63
+ e 'The action command - aka the label - was: '+
64
+ steelblue(action_command)
65
+ first.setText(action_command+'_') # This just shows how to change the text.
66
+ }
67
+
68
+ frame.menubar = menu_bar
69
+ frame.use_this_font = :hack_30
70
+ frame.show_all
71
+ end
72
+
73
+ end; end
74
+
75
+ if __FILE__ == $PROGRAM_NAME
76
+ SwingParadise::QuitButtonExample.new
77
+ end
@@ -0,0 +1,96 @@
1
+ require 'java'
2
+
3
+ java_import javax.swing.JFrame
4
+
5
+ module SwingParadise
6
+
7
+ class QuitButtonExample < JFrame
8
+
9
+ require 'swing_paradise'
10
+ include SwingParadise::BaseModule
11
+
12
+ require 'colours/html_colours'
13
+ include ::Colours::HtmlColours
14
+
15
+ # ========================================================================= #
16
+ # === initialize
17
+ # ========================================================================= #
18
+ def initialize(
19
+ run_already = true
20
+ )
21
+ run if run_already
22
+ end
23
+
24
+ # ========================================================================= #
25
+ # === do_choose_a_local_file
26
+ # ========================================================================= #
27
+ def do_choose_a_local_file
28
+ file_chooser = create_file_chooser
29
+ result = file_chooser.open_the_dialog
30
+ case result
31
+ when JFileChooser::APPROVE_OPTION
32
+ this_file = file_chooser.getSelectedFile.getAbsoluteFile.to_s
33
+ this_file = File.absolute_path(this_file)
34
+ e steelblue(this_file)
35
+ end
36
+ return file_chooser
37
+ end
38
+
39
+ # ========================================================================= #
40
+ # === run
41
+ # ========================================================================= #
42
+ def run
43
+ frame = frame('A file chooser example')
44
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
45
+ panel.use_this_font = :hack_85
46
+ frame.getContentPane.add(panel)
47
+ panel.setLayout(nil)
48
+ panel.hint = 'A quit button example'
49
+ _ = button('Pick a local file')
50
+ _.set_bounds(10, 20, 200, 40)
51
+ panel << _
52
+ _.on_clicked {
53
+ do_choose_a_local_file
54
+ }
55
+
56
+ frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
57
+ frame.exit_on_close
58
+ frame.set_size(500, 400)
59
+ frame.setLocationRelativeTo(nil)
60
+
61
+ menu_bar = create_menubar # Create a new menubar here.
62
+ m1 = JMenu.new('General options') # The first menu.
63
+ menu_bar << m1
64
+ m2 = JMenu.new('Help') # The second menu.
65
+ m2.setEnabled(false)
66
+ menu_bar << m2
67
+
68
+ # Create the menu items and add them to the menus
69
+ first = menu_item('Entry #1')
70
+ second = menu_item('Entry #2')
71
+ third = menu_item('Entry #3')
72
+ fourth = menu_item('Entry #4')
73
+ fifth = menu_item('Entry #5')
74
+ m1 << first
75
+ m1 << (second)
76
+ m1 << (third)
77
+ m1 << (fourth)
78
+ m1 << (fifth)
79
+ first.addActionListener {|event|
80
+ e 'The first menu has been activated.'
81
+ action_command = event.get_action_command
82
+ e 'The action command - aka the label - was: '+
83
+ steelblue(action_command)
84
+ first.setText(action_command+'_') # This just shows how to change the text.
85
+ }
86
+
87
+ frame.menubar = menu_bar
88
+ frame.use_this_font = :hack_30
89
+ frame.show_all
90
+ end
91
+
92
+ end; end
93
+
94
+ if __FILE__ == $PROGRAM_NAME
95
+ SwingParadise::QuitButtonExample.new
96
+ end
@@ -0,0 +1,56 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+
9
+ module SwingParadise
10
+
11
+ class ButtonsExample < JFrame
12
+
13
+ require 'swing_paradise'
14
+ include SwingParadise::BaseModule
15
+
16
+ # ========================================================================= #
17
+ # === initialize
18
+ # ========================================================================= #
19
+ def initialize(
20
+ run_already = true
21
+ )
22
+ run if run_already
23
+ end
24
+
25
+ # ========================================================================= #
26
+ # === run
27
+ # ========================================================================= #
28
+ def run
29
+ frame = frame('A quit button example')
30
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
31
+ panel.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
32
+ frame.getContentPane.add(panel)
33
+ panel.setLayout(FlowLayout.new)
34
+ panel.hint = 'A quit button example'
35
+ _ = quit_button
36
+ _.set_bounds(10, 20, 200, 40)
37
+ panel << _
38
+ button1 = create_button('Button #1 (click via Alt+h)')
39
+ button1.on_clicked {
40
+ e 'button1 was clicked.'
41
+ }
42
+ button1.setMnemonic(KeyEvent::VK_H)
43
+ button1.hint = 'Press Alt+H to trigger this button.'
44
+ panel << button1
45
+ frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
46
+ frame.exit_on_close
47
+ frame.set_size(500, 400)
48
+ frame.setLocationRelativeTo(nil)
49
+ frame.show_all
50
+ end
51
+
52
+ end; end
53
+
54
+ if __FILE__ == $PROGRAM_NAME
55
+ SwingParadise::ButtonsExample.new
56
+ end
@@ -0,0 +1,51 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+
9
+ module SwingParadise
10
+
11
+ class ColourChooserExample < JFrame
12
+
13
+ require 'swing_paradise'
14
+ include SwingParadise::BaseModule
15
+
16
+ # ========================================================================= #
17
+ # === initialize
18
+ # ========================================================================= #
19
+ def initialize(
20
+ run_already = true
21
+ )
22
+ run if run_already
23
+ end
24
+
25
+ # ========================================================================= #
26
+ # === run
27
+ # ========================================================================= #
28
+ def run
29
+ frame = frame('A quit button example')
30
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
31
+ panel.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
32
+ frame.getContentPane.add(panel)
33
+ panel.setLayout(FlowLayout.new)
34
+ panel.hint = 'A quit button example'
35
+ _ = quit_button
36
+ _.set_bounds(10, 20, 200, 40)
37
+ panel << _
38
+ colorchooser = JColorChooser.new
39
+ panel << colorchooser
40
+ frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
41
+ frame.exit_on_close
42
+ frame.set_size(800, 500)
43
+ frame.setLocationRelativeTo(nil)
44
+ frame.show_all
45
+ end
46
+
47
+ end; end
48
+
49
+ if __FILE__ == $PROGRAM_NAME
50
+ SwingParadise::ColourChooserExample.new
51
+ end
@@ -0,0 +1,61 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+
9
+ module SwingParadise
10
+
11
+ class JeditorpaneExample < JFrame
12
+
13
+ require 'swing_paradise'
14
+ include SwingParadise::BaseModule
15
+
16
+ # ========================================================================= #
17
+ # === initialize
18
+ # ========================================================================= #
19
+ def initialize(
20
+ run_already = true
21
+ )
22
+ run if run_already
23
+ end
24
+
25
+ # ========================================================================= #
26
+ # === run
27
+ # ========================================================================= #
28
+ def run
29
+ frame = frame('Showcasing JEditorPane')
30
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
31
+ panel.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
32
+ frame.getContentPane.add(panel)
33
+ panel.setLayout(BoxLayout.new(panel, BoxLayout::PAGE_AXIS)) # FlowLayout.new)
34
+
35
+ panel.hint = 'A quit button example'
36
+ editor_pane = JEditorPane.new
37
+ # editor_pane.readonly
38
+ editor_pane.set_size(820, 600)
39
+ editor_pane.use_this_font = :hack_32
40
+
41
+ # ======================================================================= #
42
+ # Put the editor pane in a scroll pane.
43
+ # ======================================================================= #
44
+ scroll_pane = scroll_pane(editor_pane)
45
+ scroll_pane.vertical_scrollbar_always
46
+ scroll_pane.min_size(820, 700)
47
+
48
+ panel << editor_pane
49
+ panel << quit_button
50
+ frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
51
+ frame.exit_on_close
52
+ frame.set_size(1250, 500)
53
+ frame.setLocationRelativeTo(nil)
54
+ frame.show_all
55
+ end
56
+
57
+ end; end
58
+
59
+ if __FILE__ == $PROGRAM_NAME
60
+ SwingParadise::JeditorpaneExample.new
61
+ end
@@ -0,0 +1,77 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+
9
+ module SwingParadise
10
+
11
+ class TableExample < JFrame
12
+
13
+ require 'swing_paradise'
14
+ include SwingParadise::BaseModule
15
+
16
+ # ========================================================================= #
17
+ # === EVEN_ROW_COLOR
18
+ # ========================================================================= #
19
+ EVEN_ROW_COLOR = Color.new(241, 245, 250)
20
+
21
+ # ========================================================================= #
22
+ # === TABLE_GRID_COLOR
23
+ # ========================================================================= #
24
+ TABLE_GRID_COLOR = Color.new(0xd9d9d9)
25
+
26
+ # ========================================================================= #
27
+ # === initialize
28
+ # ========================================================================= #
29
+ def initialize(
30
+ run_already = true
31
+ )
32
+ run if run_already
33
+ end
34
+
35
+ # ========================================================================= #
36
+ # === run
37
+ # ========================================================================= #
38
+ def run
39
+ frame = frame('Showcasing JEditorPane')
40
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
41
+ panel.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
42
+ frame.getContentPane.add(panel)
43
+ panel.setLayout(BoxLayout.new(panel, BoxLayout::PAGE_AXIS)) # FlowLayout.new)
44
+ panel.hint = 'Table example'
45
+
46
+ m = defaul_table_model
47
+ m.add_column('id')
48
+ m.add_column('name')
49
+ m.add_row(['1', 'jimmy'].to_java)
50
+ m.add_row(['2', 'robert'].to_java)
51
+
52
+ table = JTable.new(m)
53
+ table.use_this_font = :mono_18
54
+
55
+ # ======================================================================= #
56
+ # Put the editor pane in a scroll pane.
57
+ # ======================================================================= #
58
+ scroll_pane = scroll_pane(table)
59
+ scroll_pane.vertical_scrollbar_always
60
+ scroll_pane.min_size(820, 700)
61
+ #scroll_pane.use_this_font = :hack_30
62
+
63
+ panel << scroll_pane
64
+ panel << quit_button
65
+
66
+ frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
67
+ frame.exit_on_close
68
+ frame.set_size(1250, 500)
69
+ frame.setLocationRelativeTo(nil)
70
+ frame.show_all
71
+ end
72
+
73
+ end; end
74
+
75
+ if __FILE__ == $PROGRAM_NAME
76
+ SwingParadise::TableExample.new
77
+ end
@@ -0,0 +1,66 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+
9
+ module SwingParadise
10
+
11
+ class JSplitPaneExample < JFrame
12
+
13
+ require 'swing_paradise'
14
+ include SwingParadise::BaseModule
15
+
16
+ # ========================================================================= #
17
+ # === initialize
18
+ # ========================================================================= #
19
+ def initialize(
20
+ run_already = true
21
+ )
22
+ run if run_already
23
+ end
24
+
25
+ # ========================================================================= #
26
+ # === run
27
+ # ========================================================================= #
28
+ def run
29
+ frame = frame('Showcasing JEditorPane')
30
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
31
+ panel.use_this_font = :hack_40
32
+ frame.getContentPane.add(panel)
33
+ panel.setLayout(BoxLayout.new(panel, BoxLayout::PAGE_AXIS)) # FlowLayout.new)
34
+ panel.hint = 'Table example'
35
+
36
+ split_pane = JSplitPane.new(JSplitPane::VERTICAL_SPLIT)
37
+ split_pane.setContinuousLayout(true)
38
+ split_pane.setOneTouchExpandable(true)
39
+ button_on_top = JButton.new('A')
40
+ split_pane.setTopComponent(button_on_top)
41
+ button_on_bottom =JButton.new('B')
42
+ split_pane.setBottomComponent(button_on_bottom)
43
+
44
+ # ======================================================================= #
45
+ # Put the editor pane in a scroll pane.
46
+ # ======================================================================= #
47
+ scroll_pane = scroll_pane(split_pane)
48
+ scroll_pane.vertical_scrollbar_always
49
+ scroll_pane.min_size(820, 700)
50
+ #scroll_pane.use_this_font = :hack_40
51
+
52
+ panel << scroll_pane
53
+ panel << quit_button
54
+
55
+ frame.use_this_font = :hack_50
56
+ frame.exit_on_close
57
+ frame.set_size(1250, 500)
58
+ frame.setLocationRelativeTo(nil)
59
+ frame.show_all
60
+ end
61
+
62
+ end; end
63
+
64
+ if __FILE__ == $PROGRAM_NAME
65
+ SwingParadise::JSplitPaneExample.new
66
+ end
@@ -0,0 +1,51 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+ java_import javax.swing.JPanel
9
+ java_import java.awt.Dimension
10
+
11
+ class DrawingOvalExample < JPanel
12
+
13
+ require 'swing_paradise'
14
+ include SwingParadise::BaseModule
15
+
16
+ # ========================================================================= #
17
+ # === initialize
18
+ # ========================================================================= #
19
+ def initialize(
20
+ run_already = true
21
+ )
22
+ super()
23
+ run if run_already
24
+ end
25
+
26
+ # ========================================================================= #
27
+ # === paintComponent
28
+ # ========================================================================= #
29
+ def paintComponent(graphics)
30
+ 1000.times { |entry|
31
+ x = Math.sin(entry) + 1
32
+ y = Math.cos(entry * 0.2) + 1
33
+ graphics.draw_oval(x * 320, y * 240, 10, 10)
34
+ }
35
+ end
36
+
37
+ # ========================================================================= #
38
+ # === run
39
+ # ========================================================================= #
40
+ def run
41
+ end
42
+
43
+ end
44
+
45
+ if __FILE__ == $PROGRAM_NAME
46
+ frame = JFrame.new 'Hello, JRuby!'
47
+ frame.size = Dimension.new(640, 480)
48
+ panel = DrawingOvalExample.new
49
+ frame.add panel
50
+ frame.visible = true
51
+ end
@@ -0,0 +1,57 @@
1
+ # =========================================================================== #
2
+ # The idea for this .rb file is to showcase what can be done with
3
+ # buttons in jruby-swing.
4
+ # =========================================================================== #
5
+ include Java
6
+
7
+ java_import javax.swing.JFrame
8
+
9
+ class ShowMessageDialogExample < JFrame
10
+
11
+ require 'swing_paradise/base_module/base_module.rb'
12
+ include SwingParadise::BaseModule
13
+
14
+ # ========================================================================= #
15
+ # === TITLE
16
+ # ========================================================================= #
17
+ TITLE = 'Show Message Dialog Example'
18
+
19
+ # ========================================================================= #
20
+ # === initialize
21
+ # ========================================================================= #
22
+ def initialize(
23
+ run_already = true
24
+ )
25
+ super('FrameExample Example')
26
+ set_size(480, 180)
27
+ run if run_already
28
+ end
29
+
30
+ # ========================================================================= #
31
+ # === run
32
+ # ========================================================================= #
33
+ def run
34
+ message_dialog = JOptionPane.showMessageDialog(
35
+ Component parent,
36
+ TITLE, # String title,
37
+ String message,
38
+ int type
39
+ )
40
+ panel = JPanel.new(GridLayout.new(7, 1, 5, 5))
41
+ panel.set_font(Font.new('Calibri', Font::PLAIN, 62))
42
+ panel.setBorder(
43
+ BorderFactory.uniform_border(20)
44
+ )
45
+ _ = BorderFactory.createTitledBorder(" Frame")
46
+ panel.setBorder(_)
47
+ end
48
+
49
+ end
50
+
51
+ if __FILE__ == $PROGRAM_NAME
52
+ frame = JFrame.new 'Hello, JRuby!'
53
+ frame.size = Dimension.new(640, 480)
54
+ panel = ShowMessageDialogExample.new
55
+ frame.add panel
56
+ frame.visible = true
57
+ end
@@ -0,0 +1,19 @@
1
+ # =========================================================================== #
2
+ # === Java::JavaxSwing::BorderFactory
3
+ # =========================================================================== #
4
+ # require 'swing_paradise/java_classes/border_factory/border_factory.rb'
5
+ # =========================================================================== #
6
+ # javax.swing.BorderFactory
7
+ # =========================================================================== #
8
+ class Java::JavaxSwing::BorderFactory
9
+
10
+ # ========================================================================= #
11
+ # === BorderFactory.create_uniform_empty_border
12
+ # ========================================================================= #
13
+ def self.create_uniform_empty_border(
14
+ i = 1
15
+ )
16
+ createEmptyBorder(i, i, i, i)
17
+ end; self.instance_eval { alias uniform_border create_uniform_empty_border } # === BorderFactory.uniform_border
18
+
19
+ end