swing_paradise 0.1.46

Sign up to get free protection for your applications and to get access to all the features.

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