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.
- checksums.yaml +7 -0
- data/README.md +1557 -0
- data/doc/README.gen +1510 -0
- data/lib/swing_paradise/autoinclude.rb +3 -0
- data/lib/swing_paradise/awt/README.md +1 -0
- data/lib/swing_paradise/awt/color.rb +45 -0
- data/lib/swing_paradise/base_module/base_module.rb +993 -0
- data/lib/swing_paradise/classes +1 -0
- data/lib/swing_paradise/examples/001_quit_button_example.rb +55 -0
- data/lib/swing_paradise/examples/002_text_area_example.rb +55 -0
- data/lib/swing_paradise/examples/003_combo_box_example.rb +57 -0
- data/lib/swing_paradise/examples/004_jpanel_left_bound_example.rb +41 -0
- data/lib/swing_paradise/examples/005_box_layout_example.rb +39 -0
- data/lib/swing_paradise/examples/006_frame_example.rb +33 -0
- data/lib/swing_paradise/examples/007_textarea_responding_to_enter_key_example.rb +28 -0
- data/lib/swing_paradise/examples/008_scrolled_window_example.rb +41 -0
- data/lib/swing_paradise/examples/009_font_size_example.rb +39 -0
- data/lib/swing_paradise/examples/010_counter_example.rb +183 -0
- data/lib/swing_paradise/examples/011_button_with_image_example.rb +58 -0
- data/lib/swing_paradise/examples/012_quit_on_escape_key_being_pressed.rb +37 -0
- data/lib/swing_paradise/examples/013_simple_box_example.rb +38 -0
- data/lib/swing_paradise/examples/014_mouse_events_example.rb +41 -0
- data/lib/swing_paradise/examples/015_menu_example.rb +77 -0
- data/lib/swing_paradise/examples/016_file_chooser_example.rb +96 -0
- data/lib/swing_paradise/examples/017_buttons_example.rb +56 -0
- data/lib/swing_paradise/examples/018_colour_chooser_example.rb +51 -0
- data/lib/swing_paradise/examples/019_jeditorpane_example.rb +61 -0
- data/lib/swing_paradise/examples/020_table_example.rb +77 -0
- data/lib/swing_paradise/examples/021_jsplitpane_example.rb +66 -0
- data/lib/swing_paradise/examples/022_drawing_oval_example.rb +51 -0
- data/lib/swing_paradise/examples/023_show_message_dialog_example.rb +57 -0
- data/lib/swing_paradise/java_classes/border_factory/border_factory.rb +19 -0
- data/lib/swing_paradise/java_classes/box/box.rb +72 -0
- data/lib/swing_paradise/java_classes/button +1 -0
- data/lib/swing_paradise/java_classes/checkbox +1 -0
- data/lib/swing_paradise/java_classes/combobox +1 -0
- data/lib/swing_paradise/java_classes/default_table_model/default_table_model.rb +18 -0
- data/lib/swing_paradise/java_classes/frame +1 -0
- data/lib/swing_paradise/java_classes/jbutton/jbutton.rb +199 -0
- data/lib/swing_paradise/java_classes/jcheckbox/jcheckbox.rb +28 -0
- data/lib/swing_paradise/java_classes/jcombobox/jcombobox.rb +31 -0
- data/lib/swing_paradise/java_classes/jcomponent/jcomponent.rb +253 -0
- data/lib/swing_paradise/java_classes/jeditorpane/jeditorpane.rb +23 -0
- data/lib/swing_paradise/java_classes/jfilechooser/jfilechooser.rb +22 -0
- data/lib/swing_paradise/java_classes/jframe/jframe.rb +319 -0
- data/lib/swing_paradise/java_classes/jlabel/jlabel.rb +171 -0
- data/lib/swing_paradise/java_classes/jmenu/jmenu.rb +13 -0
- data/lib/swing_paradise/java_classes/jmenubar/jmenubar.rb +13 -0
- data/lib/swing_paradise/java_classes/jpanel/jpanel.rb +115 -0
- data/lib/swing_paradise/java_classes/jscrollpane/jscrollpane.rb +84 -0
- data/lib/swing_paradise/java_classes/jspinner/jspinner.rb +17 -0
- data/lib/swing_paradise/java_classes/jtextarea/jtextarea.rb +120 -0
- data/lib/swing_paradise/java_classes/jtextfield/jtextfield.rb +314 -0
- data/lib/swing_paradise/java_classes/label +1 -0
- data/lib/swing_paradise/java_classes/panel +1 -0
- data/lib/swing_paradise/java_classes/spinner +1 -0
- data/lib/swing_paradise/java_classes/textarea +1 -0
- data/lib/swing_paradise/misc/misc.rb +57 -0
- data/lib/swing_paradise/prototype/prototype.rb +79 -0
- data/lib/swing_paradise/requires/require_the_project.rb +15 -0
- data/lib/swing_paradise/toplevel_methods/misc.rb +293 -0
- data/lib/swing_paradise/version/version.rb +17 -0
- data/lib/swing_paradise/widget_collection/README.md +2 -0
- data/lib/swing_paradise/widget_collection/text_viewer.rb +160 -0
- data/lib/swing_paradise.rb +1 -0
- data/swing_paradise.gemspec +42 -0
- metadata +120 -0
@@ -0,0 +1 @@
|
|
1
|
+
java_classes
|
@@ -0,0 +1,55 @@
|
|
1
|
+
include Java
|
2
|
+
|
3
|
+
java_import javax.swing.JButton
|
4
|
+
java_import javax.swing.JFrame
|
5
|
+
java_import javax.swing.JLabel
|
6
|
+
java_import javax.swing.JPanel
|
7
|
+
java_import javax.swing.JTextArea
|
8
|
+
java_import javax.swing.JScrollBar
|
9
|
+
java_import javax.swing.JTextField
|
10
|
+
java_import javax.swing.JSpinner
|
11
|
+
java_import javax.swing.SpinnerNumberModel
|
12
|
+
java_import java.lang.System
|
13
|
+
java_import java.awt.Font
|
14
|
+
|
15
|
+
module SwingParadise
|
16
|
+
|
17
|
+
class QuitButtonExample < JFrame
|
18
|
+
|
19
|
+
require 'swing_paradise'
|
20
|
+
include SwingParadise
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === initialize
|
24
|
+
# ========================================================================= #
|
25
|
+
def initialize(
|
26
|
+
run_already = true
|
27
|
+
)
|
28
|
+
run if run_already
|
29
|
+
end
|
30
|
+
|
31
|
+
# ========================================================================= #
|
32
|
+
# === run
|
33
|
+
# ========================================================================= #
|
34
|
+
def run
|
35
|
+
frame = frame('A quit button example')
|
36
|
+
panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
|
37
|
+
panel.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
|
38
|
+
frame.getContentPane.add(panel)
|
39
|
+
panel.setLayout(nil)
|
40
|
+
panel.hint = 'A quit button example'
|
41
|
+
_ = quit_button
|
42
|
+
_.set_bounds(10, 20, 200, 40)
|
43
|
+
panel << _
|
44
|
+
frame.set_font(Font.new 'Sans serif', Font::PLAIN, 85)
|
45
|
+
frame.exit_on_close
|
46
|
+
frame.set_size(500, 400)
|
47
|
+
frame.setLocationRelativeTo(nil)
|
48
|
+
frame.show_all
|
49
|
+
end
|
50
|
+
|
51
|
+
end; end
|
52
|
+
|
53
|
+
if __FILE__ == $PROGRAM_NAME
|
54
|
+
SwingParadise::QuitButtonExample.new
|
55
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
include Java
|
2
|
+
|
3
|
+
java_import javax.swing.JButton
|
4
|
+
java_import javax.swing.JFrame
|
5
|
+
java_import javax.swing.JLabel
|
6
|
+
java_import javax.swing.JPanel
|
7
|
+
java_import javax.swing.JTextArea
|
8
|
+
java_import javax.swing.JScrollBar
|
9
|
+
java_import javax.swing.JTextField
|
10
|
+
java_import javax.swing.JSpinner
|
11
|
+
java_import javax.swing.SpinnerNumberModel
|
12
|
+
java_import java.lang.System
|
13
|
+
java_import java.awt.Font
|
14
|
+
|
15
|
+
module SwingParadise
|
16
|
+
|
17
|
+
class TextAreaExample < JFrame
|
18
|
+
|
19
|
+
require 'swing_paradise'
|
20
|
+
include SwingParadise
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === initialize
|
24
|
+
# ========================================================================= #
|
25
|
+
def initialize(
|
26
|
+
run_already = true
|
27
|
+
)
|
28
|
+
run if run_already
|
29
|
+
end
|
30
|
+
|
31
|
+
# ========================================================================= #
|
32
|
+
# === run
|
33
|
+
# ========================================================================= #
|
34
|
+
def run
|
35
|
+
frame = frame('A text area example')
|
36
|
+
panel = jpanel # This is an instance of Java::JavaxSwing::JPanel.
|
37
|
+
panel.set_font(Font.new('Calibri', Font::PLAIN, 30))
|
38
|
+
frame.getContentPane.add(panel)
|
39
|
+
panel.setLayout(nil)
|
40
|
+
panel.hint = 'A text area example'
|
41
|
+
_ = text_view
|
42
|
+
_.set_font(Font.new 'Sans serif', Font::PLAIN, 32)
|
43
|
+
_.set_bounds(10, 20, 500, 400) # Last two are width and height.
|
44
|
+
panel << _
|
45
|
+
frame.exit_on_close
|
46
|
+
frame.set_size(500, 400)
|
47
|
+
frame.setLocationRelativeTo(nil)
|
48
|
+
frame.show_all
|
49
|
+
end
|
50
|
+
|
51
|
+
end; end
|
52
|
+
|
53
|
+
if __FILE__ == $PROGRAM_NAME
|
54
|
+
SwingParadise::TextAreaExample.new
|
55
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
include Java
|
2
|
+
|
3
|
+
java_import javax.swing.JFrame
|
4
|
+
|
5
|
+
module SwingParadise
|
6
|
+
|
7
|
+
class ComboBoxExample < JFrame # === SwingParadise::ComboBoxExample
|
8
|
+
|
9
|
+
require 'swing_paradise/base_module/base_module.rb'
|
10
|
+
include SwingParadise::BaseModule
|
11
|
+
|
12
|
+
# ========================================================================= #
|
13
|
+
# === initialize
|
14
|
+
# ========================================================================= #
|
15
|
+
def initialize(
|
16
|
+
run_already = true
|
17
|
+
)
|
18
|
+
run if run_already
|
19
|
+
end
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === run
|
23
|
+
# ========================================================================= #
|
24
|
+
def run
|
25
|
+
frame = frame('A combo-box example')
|
26
|
+
panel = jpanel # This is an instance of Java::JavaxSwing::JPanel.
|
27
|
+
panel.set_font(Font.new('Calibri', Font::PLAIN, 30))
|
28
|
+
frame.getContentPane.add(panel)
|
29
|
+
panel.setLayout(nil)
|
30
|
+
panel.hint = 'A text area example'
|
31
|
+
array = %w( apple bird cat dog eagle ferret )
|
32
|
+
combo_box = JComboBox.new
|
33
|
+
array.each {|this_item|
|
34
|
+
combo_box.addItem(this_item)
|
35
|
+
}
|
36
|
+
combo_box.setSelectedIndex(2)
|
37
|
+
combo_box.set_font(Font.new 'Sans serif', Font::PLAIN, 32)
|
38
|
+
combo_box.set_bounds(10, 20, 400, 80) # Last two are width and height.
|
39
|
+
combo_box.add_action_listener { |event|
|
40
|
+
case event.get_action_command
|
41
|
+
when /comboBoxChanged/
|
42
|
+
current_selection = combo_box.selected_item.to_s
|
43
|
+
e 'The selected item is: '+current_selection
|
44
|
+
end
|
45
|
+
}
|
46
|
+
panel << combo_box
|
47
|
+
frame.exit_on_close
|
48
|
+
frame.set_size(500, 400)
|
49
|
+
frame.setLocationRelativeTo(nil)
|
50
|
+
frame.show_all
|
51
|
+
end
|
52
|
+
|
53
|
+
end; end
|
54
|
+
|
55
|
+
if __FILE__ == $PROGRAM_NAME
|
56
|
+
SwingParadise::ComboBoxExample.new
|
57
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'java'
|
2
|
+
|
3
|
+
include Java
|
4
|
+
|
5
|
+
java_import java.awt.BorderLayout
|
6
|
+
java_import java.awt.FlowLayout
|
7
|
+
java_import java.awt.Frame
|
8
|
+
java_import javax.swing.JButton
|
9
|
+
java_import javax.swing.JPanel
|
10
|
+
java_import java.lang.System
|
11
|
+
|
12
|
+
class JPanelLeftBoundExample < Frame
|
13
|
+
|
14
|
+
require 'swing_paradise/base_module/base_module.rb'
|
15
|
+
include SwingParadise::BaseModule
|
16
|
+
|
17
|
+
# ========================================================================= #
|
18
|
+
# === initialize
|
19
|
+
# ========================================================================= #
|
20
|
+
def initialize
|
21
|
+
super('JPanelLeftBoundExample Example')
|
22
|
+
set_size(480, 180)
|
23
|
+
panel = create_panel { :left }
|
24
|
+
panel.set_font(Font.new('Calibri', Font::PLAIN, 42))
|
25
|
+
panel.hint = 'A jpanel left-bound example'
|
26
|
+
|
27
|
+
b1 = button('1')
|
28
|
+
b1.on_clicked {
|
29
|
+
e 'I WAS CLICKED'
|
30
|
+
}
|
31
|
+
b2 = button('2')
|
32
|
+
b3 = button('3')
|
33
|
+
panel.batch_add(b1, b2, b3)
|
34
|
+
add(panel, BorderLayout::NORTH)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
if __FILE__ == $PROGRAM_NAME
|
40
|
+
JPanelLeftBoundExample.new.visible = true
|
41
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'java'
|
2
|
+
|
3
|
+
java_import java.awt.Frame
|
4
|
+
|
5
|
+
class BoxLayoutExample < 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('BoxLayoutExample 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(BorderFactory.createEmptyBorder(10, 10, 10, 10))
|
19
|
+
|
20
|
+
# The top label
|
21
|
+
_ = text('Login')
|
22
|
+
_.center
|
23
|
+
entry1 = text_field(10)
|
24
|
+
entry1.setAlignmentX(Component::CENTER_ALIGNMENT)
|
25
|
+
entry2 = password_field(10)
|
26
|
+
entry2.setAlignmentX(Component::CENTER_ALIGNMENT)
|
27
|
+
# The login button
|
28
|
+
login_button = button('login')
|
29
|
+
login_button.setAlignmentX(Component::CENTER_ALIGNMENT)
|
30
|
+
|
31
|
+
panel.batch_add(_, entry1, entry2, login_button)
|
32
|
+
add(panel, BorderLayout::NORTH)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
if __FILE__ == $PROGRAM_NAME
|
38
|
+
BoxLayoutExample.new.is_visible
|
39
|
+
end
|
@@ -0,0 +1,33 @@
|
|
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('FrameExample Example')
|
15
|
+
set_size(480, 180)
|
16
|
+
panel = JPanel.new(GridLayout.new(7, 1, 5, 5))
|
17
|
+
panel.set_font(Font.new('Calibri', Font::PLAIN, 62))
|
18
|
+
panel.setBorder(
|
19
|
+
BorderFactory.uniform_border(20)
|
20
|
+
)
|
21
|
+
_ = BorderFactory.createTitledBorder(" Frame")
|
22
|
+
panel.setBorder(_)
|
23
|
+
_ = bold_text('Examples')
|
24
|
+
_.set_font(Font.new('Calibri', Font::PLAIN, 40))
|
25
|
+
panel.add(_, JLabel::CENTER)
|
26
|
+
add(panel, BorderLayout::NORTH)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
if __FILE__ == $PROGRAM_NAME
|
32
|
+
FrameExample.new.is_visible
|
33
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
java_import java.awt.event.ActionEvent
|
2
|
+
java_import java.awt.event.ActionListener
|
3
|
+
java_import java.awt.event.WindowAdapter
|
4
|
+
java_import java.awt.event.WindowEvent
|
5
|
+
|
6
|
+
java_import javax.swing.JFrame
|
7
|
+
java_import javax.swing.JTextField
|
8
|
+
|
9
|
+
class TextareaRespondingToEnterKeyExample < JFrame
|
10
|
+
|
11
|
+
alias e puts
|
12
|
+
|
13
|
+
# === initialize
|
14
|
+
def initialize
|
15
|
+
super('This example shows how to respond to an enter-event.')
|
16
|
+
setSize(1000, 400)
|
17
|
+
text = JTextField.new('Press the <Return> key here', 50)
|
18
|
+
text.addActionListener {|event|
|
19
|
+
e 'The enter key was pressed.'
|
20
|
+
# _ = event.get_action_command
|
21
|
+
}
|
22
|
+
setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE)
|
23
|
+
add(text, 'Center')
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
TextareaRespondingToEnterKeyExample.new.setVisible(true)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
java_import java.awt.FlowLayout
|
2
|
+
java_import java.awt.event.ActionEvent
|
3
|
+
java_import java.awt.event.ActionListener
|
4
|
+
java_import java.awt.event.WindowAdapter
|
5
|
+
java_import java.awt.event.WindowEvent
|
6
|
+
|
7
|
+
java_import javax.swing.JFrame
|
8
|
+
java_import javax.swing.JTextField
|
9
|
+
java_import javax.swing.JScrollPane
|
10
|
+
java_import javax.swing.JTextArea
|
11
|
+
|
12
|
+
class ScrolledWindowExample < JFrame
|
13
|
+
|
14
|
+
require 'swing_paradise/base_module/base_module.rb'
|
15
|
+
include SwingParadise::BaseModule
|
16
|
+
|
17
|
+
require 'swing_paradise/java_classes/jscrollpane/jscrollpane.rb'
|
18
|
+
|
19
|
+
alias e puts
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === initialize
|
23
|
+
# ========================================================================= #
|
24
|
+
def initialize
|
25
|
+
super('Scrolled Window Example')
|
26
|
+
setSize(1200, 800)
|
27
|
+
getContentPane.setLayout(FlowLayout.new)
|
28
|
+
textarea = jtextarea(35, 30)
|
29
|
+
textarea.set_text("Test\n"*120)
|
30
|
+
scrolled_window = JScrollPane.new(textarea)
|
31
|
+
scrolled_window.horizontal_always
|
32
|
+
scrolled_window.vertical_always
|
33
|
+
scrolled_window.is_visible
|
34
|
+
add(scrolled_window)
|
35
|
+
is_visible
|
36
|
+
default_close
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
ScrolledWindowExample.new
|
@@ -0,0 +1,39 @@
|
|
1
|
+
include Java
|
2
|
+
|
3
|
+
java_import javax.swing.JButton
|
4
|
+
java_import javax.swing.JFrame
|
5
|
+
java_import javax.swing.JLabel
|
6
|
+
java_import javax.swing.JPanel
|
7
|
+
java_import javax.swing.JTextArea
|
8
|
+
java_import javax.swing.JScrollBar
|
9
|
+
java_import javax.swing.JTextField
|
10
|
+
java_import javax.swing.JSpinner
|
11
|
+
java_import javax.swing.SpinnerNumberModel
|
12
|
+
java_import java.lang.System
|
13
|
+
java_import java.awt.Font
|
14
|
+
|
15
|
+
class FontSizeExample
|
16
|
+
|
17
|
+
# ========================================================================= #
|
18
|
+
# === initialize
|
19
|
+
# ========================================================================= #
|
20
|
+
def initialize
|
21
|
+
frame = JFrame.new("Label Example")
|
22
|
+
label = JLabel.new('First Label')
|
23
|
+
label.setBounds(50, 50, 350, 150)
|
24
|
+
label.setFont(Font.new('Verdana', Font::PLAIN, 80))
|
25
|
+
# button1 = JButton.new('A test button')
|
26
|
+
# button1.setBounds(150, 450, 350, 150)
|
27
|
+
# button1.setFont(Font.new('Verdana', Font::PLAIN, 40))
|
28
|
+
frame.add(label)
|
29
|
+
# frame.add(button1)
|
30
|
+
frame.setSize(840, 540)
|
31
|
+
# frame.setLayout(nil)
|
32
|
+
frame.setVisible(true)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
if __FILE__ == $PROGRAM_NAME
|
38
|
+
FontSizeExample.new
|
39
|
+
end
|
@@ -0,0 +1,183 @@
|
|
1
|
+
require 'java'
|
2
|
+
|
3
|
+
java_import java.awt.Frame
|
4
|
+
|
5
|
+
class CounterModel # === CounterModel
|
6
|
+
|
7
|
+
# ========================================================================= #
|
8
|
+
# === initialize
|
9
|
+
# ========================================================================= #
|
10
|
+
def initialize
|
11
|
+
@value = 0
|
12
|
+
end
|
13
|
+
|
14
|
+
# ========================================================================= #
|
15
|
+
# === value?
|
16
|
+
# ========================================================================= #
|
17
|
+
def value?
|
18
|
+
@value
|
19
|
+
end; alias getValue value? # === getValue
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === increment
|
23
|
+
# ========================================================================= #
|
24
|
+
def increment(by_n = 1)
|
25
|
+
@value += by_n
|
26
|
+
end
|
27
|
+
|
28
|
+
# ========================================================================= #
|
29
|
+
# === decrement
|
30
|
+
# ========================================================================= #
|
31
|
+
def decrement(by_n = 1)
|
32
|
+
@value -= by_n
|
33
|
+
end
|
34
|
+
|
35
|
+
# ========================================================================= #
|
36
|
+
# === reset_the_value
|
37
|
+
# ========================================================================= #
|
38
|
+
def reset_the_value
|
39
|
+
@value = 0
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
class SimpleFrame < JFrame
|
45
|
+
|
46
|
+
require 'swing_paradise/base_module/base_module.rb'
|
47
|
+
include SwingParadise::BaseModule
|
48
|
+
|
49
|
+
def initialize
|
50
|
+
setSize(200,200)
|
51
|
+
setLocation(200,200)
|
52
|
+
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Makes the frame visible.
|
56
|
+
def showIt(title)
|
57
|
+
if title
|
58
|
+
setTitle(title)
|
59
|
+
end
|
60
|
+
setVisible(true)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Makes the frame visible and sets the title text
|
64
|
+
# and the position of the window.
|
65
|
+
def showIt(title, x, y)
|
66
|
+
setTitle(title)
|
67
|
+
setLocation(x,y)
|
68
|
+
setVisible(true)
|
69
|
+
end
|
70
|
+
|
71
|
+
# ========================================================================= #
|
72
|
+
# Makes the frame invisible.
|
73
|
+
# ========================================================================= #
|
74
|
+
def hideIt
|
75
|
+
setVisible(false)
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
# =========================================================================== #
|
81
|
+
# === CounterFrame
|
82
|
+
# =========================================================================== #
|
83
|
+
class CounterFrame < SimpleFrame
|
84
|
+
|
85
|
+
# ========================================================================= #
|
86
|
+
# === initialize
|
87
|
+
# ========================================================================= #
|
88
|
+
def initialize
|
89
|
+
counterPanel = CounterPanel.new
|
90
|
+
getContentPane.add(counterPanel, BorderLayout::CENTER)
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
# =========================================================================== #
|
96
|
+
# === CounterDriver
|
97
|
+
# =========================================================================== #
|
98
|
+
class CounterDriver
|
99
|
+
def initialize
|
100
|
+
cfr = new CounterFrame()
|
101
|
+
cfr.showIt("Counter")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class CounterListener
|
106
|
+
def initialize(i = ARGV)
|
107
|
+
@countPane = i
|
108
|
+
end
|
109
|
+
# === actionPerformed
|
110
|
+
def actionPerformed(event)
|
111
|
+
puts 'HUH'
|
112
|
+
pp event.class
|
113
|
+
actionCommand = event.getActionCommand
|
114
|
+
if actionCommand == "Up"
|
115
|
+
@countPane.increment
|
116
|
+
elsif actionCommand == "Down"
|
117
|
+
@countPane.decrement
|
118
|
+
else
|
119
|
+
puts "ERROR: Unexpected ActionCommand"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
class CounterPanel < JPanel
|
126
|
+
|
127
|
+
def initialize
|
128
|
+
@counter = CounterModel.new
|
129
|
+
bordLay = BorderLayout.new
|
130
|
+
setLayout(bordLay)
|
131
|
+
upButton = JButton.new("Up")
|
132
|
+
downButton = JButton.new("Down")
|
133
|
+
@valueLabel = JLabel.new(""+counter.getValue(),SwingConstants::CENTER)
|
134
|
+
add(upButton,BorderLayout::WEST)
|
135
|
+
add(downButton,BorderLayout::EAST)
|
136
|
+
add(@valueLabel,BorderLayout::CENTER)
|
137
|
+
# The next three lines will later be used to incorporate
|
138
|
+
# the listener.
|
139
|
+
# CounterListener countList = new CounterListener(this);
|
140
|
+
# upButton.addActionListener(countList);
|
141
|
+
# downButton.addActionListener(countList);
|
142
|
+
end
|
143
|
+
|
144
|
+
def increment
|
145
|
+
@counter.increment
|
146
|
+
@valueLabel.setText(""+counter.getValue)
|
147
|
+
end
|
148
|
+
|
149
|
+
def decrement
|
150
|
+
@counter.decrement
|
151
|
+
@valueLabel.setText(""+counter.getValue())
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
class CounterExample < Frame # === CounterExample
|
157
|
+
|
158
|
+
require 'swing_paradise/base_module/base_module.rb'
|
159
|
+
include SwingParadise::BaseModule
|
160
|
+
|
161
|
+
# ========================================================================= #
|
162
|
+
# === initialize
|
163
|
+
# ========================================================================= #
|
164
|
+
def initialize
|
165
|
+
super('CounterExample Example')
|
166
|
+
set_size(480, 180)
|
167
|
+
panel = create_panel(GridLayout.new(7, 1, 5, 5))
|
168
|
+
panel.set_font(Font.new('Calibri', Font::PLAIN, 62))
|
169
|
+
panel.uniform_border(20)
|
170
|
+
_ = BorderFactory.createTitledBorder(" Frame")
|
171
|
+
panel.setBorder(_)
|
172
|
+
_ = bold_text('Examples')
|
173
|
+
_.set_font(Font.new('Calibri', Font::PLAIN, 40))
|
174
|
+
panel.add(_, JLabel::CENTER)
|
175
|
+
add(panel, BorderLayout::NORTH)
|
176
|
+
is_visible
|
177
|
+
end
|
178
|
+
|
179
|
+
end
|
180
|
+
|
181
|
+
if __FILE__ == $PROGRAM_NAME
|
182
|
+
CounterExample.new
|
183
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# =========================================================================== #
|
2
|
+
# This example works without using SwingParadise. You can modify
|
3
|
+
# the path of the image below.
|
4
|
+
# =========================================================================== #
|
5
|
+
include Java
|
6
|
+
|
7
|
+
java_import javax.swing.JFrame
|
8
|
+
|
9
|
+
class ButtonWithImageExample < JFrame
|
10
|
+
|
11
|
+
require 'swing_paradise/base_module/base_module.rb'
|
12
|
+
include SwingParadise::BaseModule
|
13
|
+
|
14
|
+
# ========================================================================= #
|
15
|
+
# === PATH_TO_THE_IMAGE_FILE
|
16
|
+
#
|
17
|
+
# This may have to be changed to another image.
|
18
|
+
# ========================================================================= #
|
19
|
+
PATH_TO_THE_IMAGE_FILE = '/home/x/data/images/NJOY/Susanne_01.jpg'
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === initialize
|
23
|
+
# ========================================================================= #
|
24
|
+
def initialize(
|
25
|
+
run_already = true
|
26
|
+
)
|
27
|
+
super('Icon Frame')
|
28
|
+
reset
|
29
|
+
setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE)
|
30
|
+
panel = create_panel
|
31
|
+
# ======================================================================= #
|
32
|
+
# Next create the image:
|
33
|
+
# ======================================================================= #
|
34
|
+
button = button_with_image(PATH_TO_THE_IMAGE_FILE, "An example of showing an image")
|
35
|
+
panel.add(button)
|
36
|
+
add(panel)
|
37
|
+
run if run_already
|
38
|
+
end
|
39
|
+
|
40
|
+
# ========================================================================= #
|
41
|
+
# === reset (reset tag)
|
42
|
+
# ========================================================================= #
|
43
|
+
def reset
|
44
|
+
end
|
45
|
+
|
46
|
+
# ========================================================================= #
|
47
|
+
# === run
|
48
|
+
# ========================================================================= #
|
49
|
+
def run
|
50
|
+
pack()
|
51
|
+
setVisible(true)
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
if __FILE__ == $PROGRAM_NAME
|
57
|
+
ButtonWithImageExample.new
|
58
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# =========================================================================== #
|
2
|
+
# 012_quit_on_escape_key_being_pressed.rb
|
3
|
+
# =========================================================================== #
|
4
|
+
module SwingParadise
|
5
|
+
|
6
|
+
require 'swing_paradise/base_module/base_module.rb'
|
7
|
+
|
8
|
+
class QuitOnEscapeKeyBeingPressed < JFrame # === SwingParadise::QuitOnEscapeKeyBeingPressed
|
9
|
+
|
10
|
+
include SwingParadise::BaseModule
|
11
|
+
|
12
|
+
# ========================================================================= #
|
13
|
+
# === initialize
|
14
|
+
# ========================================================================= #
|
15
|
+
def initialize(
|
16
|
+
run_already = true
|
17
|
+
)
|
18
|
+
run if run_already
|
19
|
+
end
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === run
|
23
|
+
# ========================================================================= #
|
24
|
+
def run
|
25
|
+
frame = frame('Showcasing how to quit on escape-key being pressed')
|
26
|
+
frame.allow_the_escape_key_to_exit
|
27
|
+
frame.exit_on_close
|
28
|
+
frame.set_size(500, 400)
|
29
|
+
frame.setLocationRelativeTo(nil)
|
30
|
+
frame.show_all
|
31
|
+
end
|
32
|
+
|
33
|
+
end; end
|
34
|
+
|
35
|
+
if __FILE__ == $PROGRAM_NAME
|
36
|
+
SwingParadise::QuitOnEscapeKeyBeingPressed.new
|
37
|
+
end
|