100% found this document useful (13 votes)
66 views62 pages

Starting Out With Java: From Control Structures Through Objects (What's New in Computer Science) 7th Edition Gaddis

From

Uploaded by

ilokekareb91
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (13 votes)
66 views62 pages

Starting Out With Java: From Control Structures Through Objects (What's New in Computer Science) 7th Edition Gaddis

From

Uploaded by

ilokekareb91
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Download the full version of the textbook now at textbookfull.

com

Starting Out with Java: From Control


Structures through Objects (What's New in
Computer Science) 7th Edition Gaddis

https://textbookfull.com/product/starting-out-
with-java-from-control-structures-through-objects-
whats-new-in-computer-science-7th-edition-gaddis/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Starting Out with Java: From Control Structures through


Objects (6th Edition) Gaddis

https://textbookfull.com/product/starting-out-with-java-from-control-
structures-through-objects-6th-edition-gaddis/

textbookfull.com

Starting Out with C++: From Control Structures through


Objects, Brief Edition, 9/e Tony Gaddis

https://textbookfull.com/product/starting-out-with-c-from-control-
structures-through-objects-brief-edition-9-e-tony-gaddis/

textbookfull.com

Starting out with C++. From control structures through


objects Second Custom Edition For Penn State University
Tony Gaddis
https://textbookfull.com/product/starting-out-with-c-from-control-
structures-through-objects-second-custom-edition-for-penn-state-
university-tony-gaddis/
textbookfull.com

Nicolas de Condorcet The Revolution of French Higher


Education SpringerBriefs in Education Marty

https://textbookfull.com/product/nicolas-de-condorcet-the-revolution-
of-french-higher-education-springerbriefs-in-education-marty/

textbookfull.com
Public Policy, Philanthropy and Peacebuilding in Northern
Ireland 1st Edition Colin Knox

https://textbookfull.com/product/public-policy-philanthropy-and-
peacebuilding-in-northern-ireland-1st-edition-colin-knox/

textbookfull.com

Tackling Causes and Consequences of Health Inequalities A


Practical Guide 1st Edition James Matheson (Editor)

https://textbookfull.com/product/tackling-causes-and-consequences-of-
health-inequalities-a-practical-guide-1st-edition-james-matheson-
editor/
textbookfull.com

Girlfriend Material 1st Edition Katia Rose

https://textbookfull.com/product/girlfriend-material-1st-edition-
katia-rose/

textbookfull.com

Rethinking 21st Century Diversity in Teacher Preparation K


12 Education and School Policy Theory Research and
Practice Suniti Sharma
https://textbookfull.com/product/rethinking-21st-century-diversity-in-
teacher-preparation-k-12-education-and-school-policy-theory-research-
and-practice-suniti-sharma/
textbookfull.com

Investing in the Age of Democracy: Ten Lessons in Applied


Austrian Economics Morten Arisson

https://textbookfull.com/product/investing-in-the-age-of-democracy-
ten-lessons-in-applied-austrian-economics-morten-arisson/

textbookfull.com
Creative Writing for Social Research A Practical Guide 1st
Edition Richard Phillips

https://textbookfull.com/product/creative-writing-for-social-research-
a-practical-guide-1st-edition-richard-phillips/

textbookfull.com
Starting Out With Java ™
From Control Structures through Objects
Starting Out With Java ™
From Control Structures through Objects

SEVENTH EDITION

Tony Gaddis

Haywood Community College

330 Hudson Street, NY NY 10013


Senior Vice President Courseware Portfolio Management: Marcia J. Horton
Director, Portfolio Management: Engineering, Computer Science & Global Editions: Julian Partridge

Portfolio Manager: Matt Goldstein

Portfolio Management Assistant: Meghan Jacoby

Managing Content Producer: Scott Disanno


Content Producer: Amanda Brands

Rights and Permissions Manager: Ben Ferrini

Manufacturing Buyer, Higher Ed, Lake Side Communications, Inc. (LSC): Maura Zaldivar-Garcia

Inventory Manager: Ann Lam

Product Marketing Manager: Yvonne Vannatta

Field Marketing Manager: Demetrius Hall


Marketing Assistant: Jon Bryant

Cover Designer: Joyce Wells

Cover Photo: Shutterstock/Tim UR

Printer/Binder: LSC Communications, Inc.

Full-Service Project Management: Sasibalan Chidambaram, SPi Global

Credits and acknowledgments borrowed from other sources and reproduced, with permission, in this textbook

appear on appropriate page within text.

Copyright © 2019, 2016, 2013 by Pearson Education, Inc., Hoboken, New Jersey 07030. All rights reserved.

Manufactured in the United States of America. This publication is protected by copyright and permissions should

be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission

in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information

regarding permissions, request forms and the appropriate contacts within the Pearson Education Global Rights &
Permissions department, please visit http://www.pearsoned.com/permissions/.

Many of the designations by manufacturers and seller to distinguish their products are claimed as trademarks.

Where those designations appear in this book, and the publisher was aware of a trademark claim, the

designations have been printed in initial caps or all caps.

Unless otherwise indicated herein, any third-party trademarks that may appear in this work are the property of

their ​respective owners and any references to third-party trademarks, logos or other trade dress are for
demonstrative or descriptive purposes only. Such references are not intended to imply any sponsorship,

endorsement, authorization, or promotion of Pearson’s products by the owners of such marks, or any relationship
between the owner and Pearson Education, Inc. or its affiliates, authors, licensees or distributors.

Microsoft and/or its respective suppliers make no representations about the suitability of the information

contained in the documents and related graphics published as part of the services for any purpose. All such
documents and related graphics are provided “as is” without warranty of any kind. Microsoft and/or its respective

suppliers hereby disclaim all warranties and conditions with regard to this information, including all warranties
and conditions of merchantability. Whether express, implied or statutory, fitness for a particular purpose, title and

non infringement. In no event shall microsoft and/or its respective suppliers be liable for any special, indirect or
consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an

action of contract. Negligence or other tortious action, arising out of or in connection with the use or performance
of information available from the services.
The documents and related graphics contained herein could include technical inaccuracies or typographical errors

changes are periodically added to the information herein. Microsoft and/or its respective suppliers may make
improvements and/or changes in the product(s) and/or the program(s) described herein at any time partial screen

shots may be viewed in full within the software version specified.

Microsoft® Windows®, and Microsoft Office® are registered trademarks of the Microsoft Corporation in the U.S.A.

and other countries. This book is not sponsored or endorsed by or affiliated with the Microsoft Corporation.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their

respective owners.

Library of Congress Cataloging-in-Publication Data

Names: Gaddis, Tony, author.

Title: Starting out with Java. From control structures through objects / Tony Gaddis, Haywood Community

College.

Description: Seventh edition. | NY, NY : Pearson Education, Inc., [2019] | Includes index.

Identifiers: LCCN 2017060354| ISBN 9780134802213 | ISBN 0134802217

Subjects: LCSH: Java (Computer program language) | Data structures (Computer science) | Object-oriented

programming (Computer science)

Classification: LCC QA76.73.J38 G333 2019 | DDC 005.13/3--dc23 LC record

available at https://lccn.loc.gov/2017060354

1 18

ISBN 10: 0-13-480221-7

ISBN 13: 978-0-13-480221-3


Contents in Brief
Chapter 1 Introduction to Computers and Java 1 

Chapter 2 Java Fundamentals 27 

Chapter 3 Decision Structures 111 

Chapter 4 Loops and Files 189 

Chapter 5 Methods 269 

Chapter 6 A First Look at Classes 317 

Chapter 7 Arrays and the ArrayList Class 403 

Chapter 8 A Second Look at Classes and Objects 493 

Chapter 9 Text Processing and More about Wrapper Classes 557 

Chapter 10 Inheritance 611 

Chapter 11 Exceptions and Advanced File I/O 701 

Chapter 12 JavaFX: GUI Programming and Basic Controls 759 

Chapter 13 JavaFX: Advanced Controls 823 

Chapter 14 JavaFX: Graphics, Effects, and Media 909 

Chapter 15 Recursion 999 

Chapter 16 Databases 1027 

Index 1109 

Appendices A–M Companion Website

Case Studies 1–7 Companion Website

Chapters 17–20 Companion Website


Contents
Preface xxiii 

Chapter 1 Introduction to Computers and Java 1

1.1 Introduction 1 

1.2 Why Program? 1 

1.3 Computer Systems: Hardware and Software 2 

Hardware 2 

Software 5 

1.4 Programming Languages 6 

What Is a Program? 6 

A History of Java 8 

1.5 What Is a Program Made Of? 8 

Language Elements 8 

Lines and Statements 11 

Variables 11 

The Compiler and the Java Virtual Machine 12 

Java Software Editions 13 

Compiling and Running a Java Program 14 

1.6 The Programming Process 16 

Software Engineering 18 

1.7 Object-Oriented Programming 19 

Review Questions and Exercises 21 

Programming Challenge 25 

Chapter 2 Java Fundamentals 27 


2.1 The Parts of a Java Program 27 

2.2 The print and println Methods, and the Java API 33 

2.3 Variables and Literals 39 

Displaying Multiple Items with the + Operator 40 

Be Careful with Quotation Marks 41 

More about Literals 42 

Identifiers 42 

Class Names 44 

2.4 Primitive Data Types 44 


The Integer Data Types 46 

Floating-Point Data Types 47 

The boolean Data Type 50 


The char Data Type 50 

Variable Assignment and Initialization 52 

Variables Hold Only One Value at a Time 53 

2.5 Arithmetic Operators 54 


Integer Division 57 

Operator Precedence 57 

Grouping with Parentheses 59 

The Math Class 62 

2.6 Combined Assignment Operators 63 

2.7 Conversion between Primitive Data Types 65 


Mixed Integer Operations 67 

Other Mixed Mathematical Expressions 68 

2.8 Creating Named Constants with final 69 

2.9 The String Class 70 

Objects Are Created from Classes 71 

The String Class 71 

Primitive Type Variables and Class Type Variables 71 

Creating a String Object 72 

2.10 Scope 76 

2.11 Comments 78 

2.12 Programming Style 83 

2.13 Reading Keyboard Input 85 

Reading a Character 89 

Mixing Calls to nextLine with Calls to Other Scanner Methods 89 

2.14 Dialog Boxes 93 

Displaying Message Dialogs 93 

Displaying Input Dialogs 94 

An Example Program 94 

Converting String Input to Numbers 96 

2.15 Common Errors to Avoid 99 

Review Questions and Exercises 100 

Programming Challenges 106 

Chapter 3 Decision Structures 111 


3.1 The if Statement 111 

Using Relational Operators to Form Conditions 113 

Putting It All Together 114 

Programming Style and the if Statement 117 


Be Careful with Semicolons 117 

Having Multiple Conditionally Executed Statements 118 

Flags 118 

Comparing Characters 119 

3.2 The if-else Statement 120 

3.3 Nested if Statements 122 

3.4 The if-else-if Statement 128 

3.5 Logical Operators 134 


The Precedence of Logical Operators 139 

Checking Numeric Ranges with Logical Operators 140 

3.6 Comparing String Objects 142 

Ignoring Case in String Comparisons 146 

3.7 More about Variable Declaration and Scope 147 

3.8 The Conditional Operator (Optional) 149 

3.9 The switch Statement 150 

3.10 Displaying Formatted Output with System.out.printf and String.format 160 

Format Specifier Syntax 163 

Precision 164 

Specifying a Minimum Field Width 164 

Flags 167 

Formatting String Arguments 170 

The String.format Method 172 

3.11 Common Errors to Avoid 174 

Review Questions and Exercises 175 

Programming Challenges 181 

Chapter 4 Loops and Files 189 

4.1 The Increment and Decrement Operators 189 

The Difference between Postfix and Prefix Modes 192 

4.2 The while Loop 193 

The while Loop Is a Pretest Loop 196 

Infinite Loops 196 

Don’t Forget the Braces with a Block of Statements 197 

Programming Style and the while Loop 198 

4.3 Using the while Loop for Input Validation 200 

4.4 The do-while Loop 204 

4.5 The for Loop 207 

The for Loop Is a Pretest Loop 210 


Avoid Modifying the Control Variable in the Body of the for Loop 211 

Other Forms of the Update Expression 211 

Declaring a Variable in the for Loop’s Initialization Expression 211 

Creating a User Controlled for Loop 212 

Using Multiple Statements in the Initialization and Update Expressions 213 

4.6 Running Totals and Sentinel Values 216 

Using a Sentinel Value 219 

4.7 Nested Loops 221 

4.8 The break and continue Statements (Optional) 229 

4.9 Deciding Which Loop to Use 229 

4.10 Introduction to File Input and Output 230 

Using the PrintWriter Class to Write Data to a File 230 

Appending Data to a File 236 

Specifying the File Location 237 

Reading Data from a File 237 

Reading Lines from a File with the nextLine Method 238 

Adding a throws Clause to the Method Header 241 

Checking for a File’s Existence 245 

4.11 Generating Random Numbers with the Random Class 249 

4.12 Common Errors to Avoid 255 

Review Questions and Exercises 256 

Programming Challenges 262 

Chapter 5 Methods 269 


5.1 Introduction to Methods 269 

void Methods and Value-Returning Methods 270 

Defining a void Method 271 

Calling a Method 272 

Layered Method Calls 276 

Using Documentation Comments with Methods 277 

5.2 Passing Arguments to a Method 279 

Argument and Parameter Data Type Compatibility 281 

Parameter Variable Scope 282 

Passing Multiple Arguments 282 

Arguments Are Passed by Value 284 

Passing Object References to a Method 285 

Using the @param Tag in Documentation Comments 288 

5.3 More about Local Variables 290 


Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Local Variable Lifetime 292 

Initializing Local Variables with Parameter Values 292 

5.4 Returning a Value from a Method 293 

Defining a Value-Returning Method 293 

Calling a Value-Returning Method 294 

Using the @return Tag in Documentation Comments 296 

Returning a boolean Value 300 

Returning a Reference to an Object 300 

5.5 Problem Solving with Methods 302 

Calling Methods That Throw Exceptions 305 

5.6 Common Errors to Avoid 305 

Review Questions and Exercises 306 

Programming Challenges 311 

Chapter 6 A First Look at Classes 317 

6.1 Objects and Classes 317 

Classes: Where Objects Come From 318 

Classes in the Java API 319 

Primitive Variables vs. Objects 321 

6.2 Writing a Simple Class, Step by Step 324 

Accessor and Mutator Methods 338 

The Importance of Data Hiding 338 

Avoiding Stale Data 339 

Showing Access Specification in UML Diagrams 339 

Data Type and Parameter Notation in UML Diagrams 339 

Layout of Class Members 340 

6.3 Instance Fields and Methods 341 

6.4 Constructors 346 


Showing Constructors in a UML Diagram 348 

Uninitialized Local Reference Variables 348 

The Default Constructor 348 

Writing Your Own No-Arg Constructor 349 

The String Class Constructor 350 

6.5 Passing Objects as Arguments 358 

6.6 Overloading Methods and Constructors 370 

The BankAccount Class 372 

Overloaded Methods Make Classes More Useful 378 

6.7 Scope of Instance Fields 378 

Shadowing 379 
6.8 Packages and import Statements 380 

Explicit and Wildcard import Statements 380 

The java.lang Package 381 

Other API Packages 381 

6.9 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities 382 

Finding the Classes 382 

Identifying a Class’s Responsibilities 385 

This Is Only the Beginning 388 

6.10 Common Errors to Avoid 388 

Review Questions and Exercises 389 

Programming Challenges 394 

Chapter 7 Arrays and the ArrayList Class 403 


7.1 Introduction to Arrays 403 

Accessing Array Elements 405 

Inputting and Outputting Array Contents 406 

Java Performs Bounds Checking 409 

Watch Out for Off-by-One Errors 410 

Array Initialization 411 

Alternate Array Declaration Notation 412 

7.2 Processing Array Elements 413 

Array Length 415 

The Enhanced for Loop 416 

Letting the User Specify an Array’s Size 417 

Reassigning Array Reference Variables 419 

Copying Arrays 420 

7.3 Passing Arrays as Arguments to Methods 422 

7.4 Some Useful Array Algorithms and Operations 426 

Comparing Arrays 426 

Summing the Values in a Numeric Array 427 

Getting the Average of the Values in a Numeric Array 428 

Finding the Highest and Lowest Values in a Numeric Array 428 

The SalesData Class 429 

Partially Filled Arrays 437 

Working with Arrays and Files 438 

7.5 Returning Arrays from Methods 439 

7.6 String Arrays 441 

Calling String Methods from an Array Element 443 


7.7 Arrays of Objects 444 

7.8 The Sequential Search Algorithm 447 

7.9 Two-Dimensional Arrays 450 

Initializing a Two-Dimensional Array 454 

The length Field in a Two-Dimensional Array 455 

Displaying All the Elements of a Two-Dimensional Array 457 

Summing All the Elements of a Two-Dimensional Array 457 

Summing the Rows of a Two-Dimensional Array 458 

Summing the Columns of a Two-Dimensional Array 458 

Passing Two-Dimensional Arrays to Methods 459 

Ragged Arrays 461 

7.10 Arrays with Three or More Dimensions 462 

7.11 The Selection Sort and the Binary Search Algorithms 463 

The Selection Sort Algorithm 463 

The Binary Search Algorithm 466 

7.12 Command-Line Arguments and Variable-Length Argument Lists 468 

Command-Line Arguments 469 

Variable-Length Argument Lists 470 

7.13 The ArrayList Class 472 

Creating and Using an ArrayList Object 473 

Using the Enhanced for Loop with an ArrayList 474 

The ArrayList Class’s toString method 475 

Removing an Item from an ArrayList 476 

Inserting an Item 477 

Replacing an Item 478 

Capacity 479 

Storing Your Own Objects in an ArrayList 479 

Using the Diamond Operator for Type Inference 480 

7.14 Common Errors to Avoid 481 

Review Questions and Exercises 481 

Programming Challenges 486 

Chapter 8 A Second Look at Classes and Objects 493 

8.1 Static Class Members 493 

A Quick Review of Instance Fields and Instance Methods 493 

Static Members 494 

Static Fields 494 

Static Methods 497 


8.2 Passing Objects as Arguments to Methods 500 

8.3 Returning Objects from Methods 503 

8.4 The toString Method 505 

8.5 Writing an equals Method 509 

8.6 Methods That Copy Objects 512 

Copy Constructors 514 

8.7 Aggregation 515 

Aggregation in UML Diagrams 523 

Security Issues with Aggregate Classes 523 

Avoid Using null References 525 

8.8 The this Reference Variable 528 

Using this to Overcome Shadowing 529 

Using this to Call an Overloaded Constructor from Another Constructor 530 

8.9 Enumerated Types 531 

Enumerated Types Are Specialized Classes 532 

Switching On an Enumerated Type 538 

8.10 Garbage Collection 540 

The finalize Method 542 

8.11 Focus on Object-Oriented Design: Class Collaboration 542 

Determining Class Collaborations with CRC Cards 545 

8.12 Common Errors to Avoid 546 

Review Questions and Exercises 547 

Programming Challenges 551 

Chapter 9 Text Processing and More about Wrapper Classes 557 

9.1 Introduction to Wrapper Classes 557 

9.2 Character Testing and Conversion with the Character Class 558 

Character Case Conversion 563 

9.3 More String Methods 566 

Searching for Substrings 566 

Extracting Substrings 572 

Methods That Return a Modified String 576 

The Static valueOf Methods 577 

9.4 The StringBuilder Class 579 

The StringBuilder Constructors 580 

Other StringBuilder Methods 581 

The toString Method 584 

9.5 Tokenizing Strings 589 

9.6 Wrapper Classes for the Numeric Data Types 594 


The Static toString Methods 594 

The toBinaryString , toHexString , and toOctalString Methods 594 

The MIN_VALUE and MAX_VALUE Constants 595 

Autoboxing and Unboxing 595 

9.7 Focus on Problem Solving: The TestScoreReader Class 597 

9.8 Common Errors to Avoid 601 

Review Questions and Exercises 601 

Programming Challenges 605 

Chapter 10 Inheritance 611 


10.1 What Is Inheritance? 611 

Generalization and Specialization 611 

Inheritance and the “Is a” Relationship 612 

Inheritance in UML Diagrams 620 

The Superclass’s Constructor 621 

Inheritance Does Not Work in Reverse 623 

10.2 Calling the Superclass Constructor 624 


When the Superclass Has No Default or No-Arg Constructors 630 

Summary of Constructor Issues in Inheritance 631 

10.3 Overriding Superclass Methods 632 

Overloading versus Overriding 637 

Preventing a Method from Being Overridden 640 

10.4 Protected Members 641 

Package Access 646 

10.5 Chains of Inheritance 647 

Class Hierarchies 653 

10.6 The Object Class 653 

10.7 Polymorphism 655 


Polymorphism and Dynamic Binding 656 

The “Is-a” Relationship Does Not Work in Reverse 658 

The instanceof Operator 659 

10.8 Abstract Classes and Abstract Methods 660 

Abstract Classes in UML 666 

10.9 Interfaces 667 


An Interface is a Contract 669 

Fields in Interfaces 673 

Implementing Multiple Interfaces 673 

Interfaces in UML 673 

Default Methods 674 


Polymorphism and Interfaces 676 

10.10 Anonymous Inner Classes 681 

10.11 Functional Interfaces and Lambda Expressions 684 

10.12 Common Errors to Avoid 689 

Review Questions and Exercises 690 

Programming Challenges 696 

Chapter 11 Exceptions and Advanced File I/O 701 

11.1 Handling Exceptions 701 


Exception Classes 702 

Handling an Exception 703 

Retrieving the Default Error Message 707 

Polymorphic References to Exceptions 710 

Using Multiple catch Clauses to Handle Multiple Exceptions 710 

The finally Clause 718 

The Stack Trace 720 

Handling Multiple Exceptions with One catch Clause 721 

When an Exception Is Not Caught 723 

Checked and Unchecked Exceptions 724 

11.2 Throwing Exceptions 725 

Creating Your Own Exception Classes 728 

Using the @exception Tag in Documentation Comments 731 

11.3 Advanced Topics: Binary Files, Random Access Files, and Object Serialization 732 
Binary Files 732 

Random Access Files 739 

Object Serialization 744 

Serializing Aggregate Objects 748 

11.4 Common Errors to Avoid 749 

Review Questions and Exercises 749 

Programming Challenges 755 

Chapter 12 JavaFX: GUI Programming and Basic Controls 759 

12.1 Graphical User Interfaces 759 


Event-Driven GUI Programs 761 

12.2 Introduction to JavaFX 762 


Controls 762 

Stages and Scenes 763 

The Application Class 763 

12.3 Creating Scenes 765 


Creating Controls 766 
Creating Layout Containers 766 

Creating a Scene Object 767 

Adding the Scene Object to the Stage 768 

Setting the Size of the Scene 770 

Aligning Controls in an HBox Layout Container 770 

12.4 Displaying Images 772 


Loading Images from an Internet Location 775 

Setting the Size of an Image 775 

Preserving the Image’s Aspect Ratio 775 

Changing an ImageView’s Image 776 

12.5 More about the HBox, VBox , and GridPane Layout Containers 776 

The HBox Layout Container 777 

The VBox Layout Container 782 

The GridPane Layout Container 784 

Using Multiple Layout Containers in the Same Screen 791 

12.6 Button Controls and Events 792 

Handling Events 794 

Writing Event Handlers 794 

Registering an Event Handler 795 

12.7 Reading Input with TextField Controls 799 

12.8 Using Anonymous Inner Classes and Lambda Expressions to Handle Events 803 
Using Anonymous Inner Classes to Create Event Handlers 803 

Using Lambda Expressions to Create Event Handlers 806 

12.9 The BorderPane Layout Container 808 

12.10 The ObservableList Interface 812 

12.11 Common Errors to Avoid 814 

Review Questions and Exercises 814 

Programming Challenges 818 

Chapter 13 JavaFX: Advanced Controls 823 

13.1 Styling JavaFX Applications with CSS 823 


Type Selector Names 824 

Style Properties 825 

Applying a Stylesheet to a JavaFX Application 826 

Applying Styles to the Root Node 830 

Specifying Multiple Selectors in the Same Style Definition 832 

Working with Colors 832 

Creating a Custom Style Class Name 834 


ID Selectors 836 

Inline Style Rules 837 

13.2 RadioButton Controls 838 

Determining in Code Whether a RadioButton Is Selected 839 

Selecting a RadioButton in Code 839 

Responding to RadioButton Clicks 844 

13.3 CheckBox Controls 848 

Determining in Code Whether a CheckBox Is Selected 848 

Selecting a CheckBox in Code 849 

Responding to CheckBox Clicks 853 

13.4 ListView Controls 853 

Retrieving the Selected Item 855 

Retrieving the Index of the Selected Item 856 

Responding to Item Selection with an Event Handler 859 

Adding Items versus Setting Items 860 

Initializing a ListView with an Array or an ArrayList 861 

Selection Modes 862 

Retrieving Multiple Selected Items 863 

Working With the Elements of an ObservableList 866 

Converting an ObservableList to an Array 867 

Using Code to Select an Item in a ListView 868 

ListView Orientation 868 

Creating ListViews of Objects Other Than String 869 

13.5 ComboBox Controls 874 

Retrieving the Selected Item 875 

Responding to ComboBox Item Selection with an Event Handler 877 

Editable ComboBoxes 879 

13.6 Slider Controls 880 

13.7 TextArea Controls 885 

13.8 Menus 887 


Assigning Mnemonics to Menu Items 895 

13.9 The FileChooser Class 897 

Displaying a FileChooser Dialog Box 898 

13.10 Using Console Output to Debug a GUI Application 898 

13.11 Common Errors to Avoid 902 

Review Questions 902 

Programming Challenges 906 


Chapter 14 JavaFX: Graphics, Effects, and Media 909 
14.1 Drawing Shapes 909 
The Screen Coordinate System 909 

The Shape Class and Its Subclasses 910 

The Line Class 911 

Changing the Stroke Color 914 

The Circle Class 914 

The Rectangle Class 918 

The Ellipse Class 921 

The Arc Class 924 

The Polygon Class 928 

The Polyline Class 931 

The Text Class 933 

Rotating Nodes 936 

Scaling Nodes 938 

14.2 Animation 940 


The TranslateTransition Class 941 

The RotateTransition Class 944 

The ScaleTransition Class 949 

The StrokeTransition Class 952 

The FillTransition Class 953 

The FadeTransition Class 954 

Controlling the Animation 956 

Specifying an Interpolator 956 

14.3 Effects 958 


The DropShadow Class 958 

The InnerShadow Class 961 

The ColorAdjust Class 962 

The BoxBlur , GaussianBlur , and MotionBlur Classes 962 

The SepiaTone Class 965 

The Glow Class 966 

The Reflection Class 967 

Combining Effects 967 

14.4 Playing Sound Files 969 


Registering an EndOfMedia Event Handler 971 

14.5 Playing Videos 974 


14.6 Handling Key Events 979 
Using an Anonymous Inner Class to Register a Key Event Handler to the Scene 980 

Using a Lambda Expression to Register a Key Event Handler to the Scene 981 

14.7 Handling Mouse Events 986 

14.8 Common Errors to Avoid 992 

Review Questions 992 

Programming Challenges 995 

Chapter 15 Recursion 999 


15.1 Introduction to Recursion 999 

15.2 Solving Problems with Recursion 1002 


Direct and Indirect Recursion 1006 

15.3 Examples of Recursive Methods 1007 


Summing a Range of Array Elements with Recursion 1007 

Drawing Concentric Circles 1008 

The Fibonacci Series 1011 

Finding the Greatest Common Divisor 1012 

15.4 A Recursive Binary Search Method 1014 

15.5 The Towers of Hanoi 1017 

15.6 Common Errors to Avoid 1021 

Review Questions and Exercises 1022 

Programming Challenges 1025 

Chapter 16 Databases 1027 


16.1 Introduction to Database Management Systems 1027 

JDBC 1028 

SQL 1029 

Using a DBMS 1029 

Java DB and Apache Derby 1030 

Creating the CoffeeDB Database 1030 

Connecting to the CoffeeDB Database 1030 

Connecting to a Password-Protected Database 1032 

16.2 Tables, Rows, and Columns 1033 


Column Data Types 1035 

Primary Keys 1035 

16.3 Introduction to the SQL SELECT Statement 1036 

Passing an SQL Statement to the DBMS 1038 

Specifying Search Criteria with the WHERE Clause 1048 

Sorting the Results of a SELECT Query 1054 

Mathematical Functions 1055 


Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
16.4 Inserting Rows 1058 

Inserting Rows with JDBC 1060 

16.5 Updating and Deleting Existing Rows 1062 

Updating Rows with JDBC 1063 

Deleting Rows with the DELETE Statement 1067 

Deleting Rows with JDBC 1067 

16.6 Creating and Deleting Tables 1071 


Removing a Table with the DROP TABLE Statement 1074 

16.7 Creating a New Database with JDBC 1074 

16.8 Scrollable Result Sets 1076 

16.9 Result Set Metadata 1077 

16.10 Relational Data 1084 


Joining Data from Multiple Tables 1086 

An Order Entry System 1087 

16.11 Advanced Topics 1100 

Transactions 1100 

Stored Procedures 1101 

16.12 Common Errors to Avoid 1102 

Review Questions and Exercises 1102 

Programming Challenges 1107 

Index 1109 

The following appendices, online chapters, and online case studies are available on the book’s online resource page at
www.pearson.com/cs-resources.

Online Appendices:
Appendix A: The ASCII/Unicode Characters 

Appendix B: Operator Precedence and Associativity 

Appendix C: Java Key Words 

Appendix D: Installing the JDK and Using the JDK Documentation 

Appendix E: Using the javadoc Utility 

Appendix F: More about the Math Class 

Appendix G: Packages 

Appendix H: Working with Records and Random - Access Files 

Appendix I: Configuring Java DB and Installing Apache Derby 

Appendix J: The QuickSort Algorithm 

Appendix K: Named Colors 

Appendix L: Answers to Checkpoints 

Appendix M: Answers to Odd-Numbered Review Questions 


Online Chapters:

Chapter 17: A First look at GUI Applications 

Chapter 18: Advanced GUI Applications 

Chapter 19: Applets and More 

Chapter 20: Creating GUI Applications with JavaFX and Scene Builder 

Online Case Studies:

Case Study 1: Calculating Sales Commission 

Case Study 2: The Amortization Class 

Case Study 3: The PinTester Class 

Case Study 4: Parallel Arrays 

Case Study 5: The FeetInches Class 

Case Study 6: The SerialNumber Class 

Case Study 7: A Simple Text Editor Application 


Location of videonotes in the text

Chapter 1  Compiling and Running a Java Program, p. 14

Using an IDE, p. 14

Your First Java Program, p. 25

Chapter 2  Displaying Console Output, p. 33

Declaring Variables, p. 39

Simple Math Expressions, p. 55

The Miles-per-Gallon Problem, p. 107

Chapter 3  The if Statement, p. 111

The if-else Statement, p. 120

The if-else-if Statement, p. 129

The Time Calculator Problem, p. 182

Chapter 4  The while Loop, p. 193

The Pennies for Pay Problem, p. 263

Chapter 5  Passing Arguments to a Method, p. 279

Returning a Value from a Method, p. 293

The Retail Price Calculator Problem, p. 311

Chapter 6  Writing Classes and Creating Objects, p. 325

Initializing an Object with a Constructor, p. 346

The Personal Information Class Problem, p. 395

Chapter 7  Accessing Array Elements in a Loop, p. 407

Passing an Array to a Method, p. 422

The Charge Account Validation Problem, p. 487


Chapter 8  Returning Objects from Methods, p. 503

Aggregation, p. 515

The BankAccount , Class Copy Constructor Problem, p. 552

Chapter 9  The Sentence Capitalizer Problem, p. 605

Chapter 10  Inheritance, p. 611

Polymorphism, p. 655

The Employee and Productionworker Classes Problem, p. 696

Chapter 11  Handling Exceptions, p. 701

The Exception Project Problem, p. 757

Chapter 12  Introduction to JavaFX, p. 762

Creating Scenes, p. 765

Displaying Images, p. 772

The HBox Layout Container, p. 777

The VBox Layout Container, p. 782

The GridPane Layout Container, p. 784

Button Controls and Events, p. 792

The TextField Control, p. 799

Using Anonymous Inner Classes as Event Handlers, p. 803

Using Lambda Expressions as Event Handlers, p. 806

The Latin Translator Problem, p. 818

Chapter 13  JavaFX and CSS, p. 823

RadioButton Controls, p. 838

CheckBox Controls, p. 848

ListView Controls, p. 853

ComboBox Controls, p. 874


Slider Controls, p. 880

The Dorm and Meal Plan Calculator Problem, p. 906

Chapter 14  Drawing Shapes with JavaFX, p. 909

JavaFX Animation, p. 940

JavaFX Effects, p. 958

Playing Sound Files with JavaFX, p. 970

Playing Videos with JavaFX, p. 974

Handling Key Events in JavaFX, p. 979

Handling Mouse Events in JavaFX, p. 986

The Coin Toss Problem, p. 996

Chapter 15  Reducing a Problem with Recursion, p. 1003

The Recursive Power Problem, p. 1026

Chapter 16  The Customer Inserter Problem, p. 1107


Random documents with unrelated
content Scribd suggests to you:
Otto mietti hetken ja vastasi sitten varmasti ja rauhallisesti. "Herra
kreivi! Minä osaan vaieta kuin muuri, silloin kun velvollisuus ja
uskollisuus sen vaativat, eivätkä mitkään valat sido minun kieltäni.
Mutta henkeni ja vapauteni pelosta minä en anna valalla sitoa
kieltäni silloin kun uskollisuuteni herraani ja kuningastani kohtaan
vaatii minun puhumaan, sitä minä en tee ennenkuin olen siihen
pakotettu. Ainakin neljätoista päivää tahdon miettiä teidän
ehdotustanne."

"Jos sinä et vanno kahdeksan päivän kuluttua", karjasi kreivi


Henrik, "niin saat näiden neljän seinän välissä miettiä sitä
kuolinpäivääsi asti. Ja se voi koittaa ennenkuin odotatkaan: Minä en
pidä pitkää oikeudenkäyntiä petturien ja urkkijoiden kanssa!"

Tämän uhkauksen lausuttuaan kreivi Henrik poistui papin kanssa


vankilasta, jättäen Oton surullisiin ajatuksiinsa.

Schwerinin linnassa ei vangittu Otto kreivi ollut ainoa, joka vietti


levottoman ja unettoman yön. Yksinäisessä huoneessaan, hänen
vankilatorninsa vastapäätä istui onneton kreivitär Ida itkien. Hän oli
kyllä voittanut ruumiillisen heikkoutensa, mutta hänen hurskas
sielunsa taisteli kovaa taistelua luonnollisen rakkauden kaipuun ja
veljiään kohtaan tuntemansa velvollisuuden välillä; sillä kreivi Henrik
oli selittänyt hänelle tämän naimiskaupan olevan ainoan
pelastuskeinon, joka voisi selvittää heidän sekavat suhteensa
tanskalaiseen kuningashuoneeseen. Hänen mielestään kreivi Klaus ei
ollut paha tai halveksittava ihminen, hän piti arvossa hänen
rehellistä, hyvää sydäntään. Mutta hänellä oli hyvin huono käsitys
hänen hengenlahjoistaan ja ymmärryksestään. Ainoa tunne, minkä
kreivi hänessä herätti, oli kyllästyminen ja jonkinlainen sääli silloin
kun sydämettömät ja lahjakkaammat ihmiset pilkkasivat häntä.
Danneborgin kreivi ja piispa Konrad olivat sydämettömästi
loukanneet häntä, saattaessaan hänen puheliaan sulhasensa
haastelemaan mitä naurettavimpia ja yksinkertaisimpia asioita.

"Hän rakastaa minua kuitenkin, raukka!" sanoi hän. "Hän on


kenties ainoa ihminen, joka tahtoisi luopua omista taipumuksistaan
minun tähteni, eikä hän kuitenkaan tunne minua, eikä hän tule
koskaan ymmärtämään minua. Jos minä voisin neuvoa ja ohjata
häntä — tai auttaa häntä tekemään muita ihmisiä onnelliseksi! Itse
minä en kuitenkaan koskaan tule onnelliseksi. Jumala ja pyhä neitsyt
vahvistakoot minua."

Näin epäitsekkäin ajatuksin hän sulki silmänsä, vaipumatta


kuitenkaan uneen. Rauha vallitsi hänen sielussaan, mutta hiljaisia
kyyneleitä vuodattaen hän lausui hyvästinsä tämän maailman
onnellisuudelle. Silloin hän kuuli tornista kirkkaan nuoren miesäänen
laulavan. Otto lauloi vankilassaan:

On vangittu lintunen allapäin,


Kun ei voi vapaana lentää.
Vaikk' ois mun häkkini kultainen
Ei riemuni suurenis sentään.

Ja kotkanpojalla kynnet on —
Sen heimo pilviä halkoo,
Ei liskona maassa se madella saa
Joka vapaana lennellä toivoo.

Otto lohdutteli näin itseään vankilassa, ja kreivitär Ida unohti


hetkeksi sydänsurunsa sääliessään vierasta nuorukaista, vaikka hän
ei tiennyt, kuka hän oli.
Kaunis prinsessa Berengaria istui ajatuksiinsa vaipuneena
huoneessaan linnan vastakkaisessa kylkirakennuksessa. Hän
huomasi tehneensä valtavan vaikutuksen nuoreen, kiihkeään
kuninkaaseen, eikä hän itse ollut milloinkaan katsellut ketään miestä
suuremmalla mieltymyksellä. Hänen suuri nimensä sankarina ja
voittajana, hänen kaunis, miellyttävä ulkomuotonsa, hänen jalo
ritarillinen olentonsa, hänen nuoruutensa, vilkkautensa ja hänen
palava henkensä olivat omiaan tekemään eläväksi hänen
rakkaimman unelmansa. Mutta sanottiin hänen kosineen Böömin
Margarethaa —, hän odotti pian ratkaisevaa, myöntävää vastausta.
Tuo huhu, joka oli saapunut sinne vähän ennen Valdemarin tuloa, oli
jo ensi hetkestä tehnyt hänet melkein välinpitämättömäksi
miellyttävän ja puoleksi kihlautuneen ruhtinaan kohteliaisuuksille.
Mutta hän toivoi tämän huhun perättömäksi! Hän päätti ainakin olla
seuraavana päivänä vähemmän kylmä ja jäykkä, ja hän tahtoi mikäli
mahdollista osoittaa kuninkaalle kunnioittavansa häntä ja antavansa
arvoa hänen osoittamalleen huomaavaisuudelle.

Näitä miettiessään hän alkoi itse irroittaa kallisarvoisia koristeitaan.


Hän oli lähettänyt pois kamarineitonsa, saadakseen antautua
häiritsemättä unelmilleen. "Tähän asti minun elämäni on ollut vain
tyhjyyttä ja turhuutta täynnä", sanoi hän. "Ilman elämän päämäärää
minä olen antanut päivieni kulua. Minä olen kuunnellut
tyhjänpäivästen ihailijoiden imartelua ja kuluttanut sieluni turhan
komeuden ja kauneuden humussa. Täältäkään minä en muuta
etsinyt, ja täällä häikäisee äkkiä todellinen onni silmäni — suuren
sankarisielun lämmin myötätunto. Ehkä kuningattaren kruunu
viittailee minulle, — eikä minun senvuoksi tarvitse uhrata vapauttani,
itsenäisyyttäni eikä sydämeni luonnollisia vaatimuksia. Hänelle —
ainoastaan hänelle minä voisin ojentaa käteni ylpeydellä,
tarvitsematta senvuoksi ylenkatsoa itseäni ja luopua jaloimmasta
tunteestani."

Hiljainen naputus ovelle häiritsi kaunista prinsessaa hänen


mietelmissään. Se avattiin, ja kreivitär Audacia astui sisään kauniissa
ohuessa yöpuvussa, kullankeltaiset palmikot riippuen hartioillaan.

"Minä en voi nukkua, jalo ystävättäreni!" sanoi hän puoleksi


levottomana, puoleksi leikkiä laskien, ollen pelon ja salaisen
tyytyväisyyden vaiheilla. "Minun täytyy neuvotella teidän kanssanne
ja uskoa teille eräs havaintoni — tai otaksumani, aioin sanoa, jolla
voi olla arveluttavat seuraukset. Ettekö itse huomannut jotakin
omituista kuninkaassa?"

"Mitä?" änkytti prinsessa hämillään. "Tekin luulette huomanneenne


— —"

"En ainoastaan minä usko sitä", vastasi Audacia ja sävähti


tulipunaiseksi, "mutta minä olen kuullut monen peitetyin sanoin
laskevan siitä leikkiä. Mutta siitä voisi syntyä vaarallinen leikki, johon
minä en luulisi olleen minkäänlaista syytä — —"

"Kuka voisi olla niin häpeämätön ja uskoa sellaista?" kysyi


prinsessa säpsähtäen.

"Nämä viisaat, epäluuloiset ihmiset ovat valmiit vaikka mihin!"


alkoi kaunis kreivitär taas puhua. "Nämä jäykät, varovaiset
hovimiehet punnitsevat jokaisen sanan ja laskevat joka askeleen.
Kaikkien yksinkertaisimmassa lauseessa piilee heidän mielestään
jokin erityinen tarkoitus, ja he uskovat itserakkauden ja
turhamaisuuden piilevän jokaisessa viattomassa, ystävällisessä
hymyssä, minkä kohteliaisuus ja molemminpuolinen hyväntahtoisuus
aiheuttavat. Nuoren kohteliaan kuninkaan tarvitsee vain istua kauniin
naisen pöytätoverina ja keskustella vapaasti hänen kanssaan, niin
silloin heti sanotaan hänen olleen rakastuneen. Jos nainen vielä
onnettomuudeksi on miellyttävä, ja hän kutsuu hänet tanssiin — niin
juttu on valmiina, hän on muka silmittömästi rakastunut, ja syy ei ole
kuninkaan, vaan tuon turhamaisen naisen, joka on ollut hänelle liian
ystävällinen, luonut häneen rakastuneita katseita, ja — kukaties
mistä kaikista rikoksista häntä syytetään —"

"Häpeämätöntä, alhaista!" keskeytti prinsessa hänet hehkuvin


poskin ja ylpeät, mustat silmät säihkyivät suuttumuksesta. "Kuka
sellaista on puhunut? Kuka on uskaltanut ajatella niin häpeällisesti
vapaasta ja jalosukuisesta naisesta, jota ei ylpeinkään ritari ole
rohjennut lähetä —"

"Jalo ystävättäreni", alkoi kreivitär taas puhua, "ei ankarinkaan


kunniallisuus näihin aikoihin voi suojata nuorta naista kateuden ja
panettelun myrskyltä, jos hän ei ole häijy kuin kuolemansynti tai
kylmä ja kuollut kuin kivi. Nyt minä taas saan kauniin nuhdesaarnan
mustasukkaiselta aviomieheltäni — ja huomenna minun varmaankin
täytyy pukeutua säkkiin ja tuhkaan ja esiintyä kuninkaalliselle
vieraalleni hiljaisena, katuvaisena perheen äitinä, tukka ja posket
mustan päähineen peittäminä. — Mutta oletteko sairas, jalo
prinsessa? Te taidatte ottaa liian innokkaasti osaa minun huoliini, ja
näiden pienten ikävyyksien minulle tuottamaan turhaan
levottomuuteen. — Mikä onnettomuus sitten oikeastaan on
tapahtunut? Meidän nuori, miellyttävä kuninkaamme on puhunut
ystävällisesti minulle ja pyöritellyt minua ehkä hiukan liian rajusti ja
kiivaasti tanssissa, sen kauheampi ei asia ole. Enhän minä emäntänä
voinut epäkohteliaana vetäytyä syrjään ja katsoa happamasti niin
mahtavaan ja ylhäiseen vieraaseen, vain senvuoksi, että mieheni
joskus on mustasukkainen. Sitäpaitsi hän itsekin parhaansa mukaan
imartelee ja koettaa miellyttää vaarallista päämiestänsä, ja minun
hän on kehoittanut olemaan niin lempeän ja huomaavaisen kuin
mahdollista. Onnettomuus on vain siinä, että minä en teeskentele
kuninkaalle ystävyyttäni, vaan teen sen sydämestäni, sillä minä en
osaa teeskennellä. Te prinsessa, varmasti myönnätte minulle
kuninkaan koko olennossa olevan jotakin aivan erikoisen
rakastettavaa ja miellyttävää, minkä täytyy miellyttää jokaista
naista."

"On kyllä." vastasi prinsessa näennäisen välinpitämättömästi ja


tointui nopeasti. "Hän on hyvin uljas herra, vaikka minä en voi
huomata häntä läheskään niin miellyttäväksi ja vaaralliseksi, kuin
hän näyttää olevan teidän silmissänne."

"Vaaralliseksi?" toisti kreivitär hiukan loukkaantuneena. "Minä


sanoisin häntä vaaralliseksi ainoastaan ajatellessani mieheni
suhdetta häneen, ja Tanskan kruunun meille pakottamaa yli-
herruutta. Minä en pidä häntä enkä ketään miestä vaarallisena
itselleni tai minun aviouskollisuudelleni, ja toivoakseni minä en ole
antanut teille minkäänlaista aihetta epäilyksiin."

"Jumal'auta", vastasi prinsessa, "en suinkaan ole sellaista ajatellut.


Mutta koska te olette niin hyvä, jalo kreivinna, että uskotte minulle
huolenne niin suokaa minun tehdä eräs huomautus! Te olette
vilkkaudessanne ja iloisuudessanne tosiaankin hyvin rakastettava.
Mutta minä luulen, että teidän täytyisi olla hiukan jäykempi ja
varovaisempi voidaksenne välttää väärinkäsityksiä ja ikävyyksiä
perheoloissanne. Mutta jos sallitte niin keskeyttäkäämme keskustelu,
jolla minä pelkään loukanneeni teidän hienotunteisuuttanne! Minä en
voi muuten oikein hyvin ja — —"
"Suokaa anteeksi, jos minä tulin sopimattomaan aikaan!" sanoi
Audacia, tuntiessaan tuttavallisuutensa loukatuksi, ja kyyneleet
kohosivat kauniin rouvan silmiin. "Minä uskoin ensi kerran
elämässäni löytäneeni sisarellisesti osanottavan sielun, joka ymmärsi
minua ja antoi minun sydämelleni vapauden. Teidän saavuttuanne
tuntui minun lapsuuteni iloisuus ja huolettomuus palautuneen.
Teidän ylevä, uskalias elämänkatsomuksenne sai minun unohtamaan
kovan kohtaloni ja minä kohottauduin vapaana ja iloisena sen painon
alta, kuin haukka metsästäjän pään päällä, unohtaessaan nauhan,
jolla tämä pitelee sitä kiinni. Mutta nyt olette tekin, ruhtinaallinen
sukulaiseni tullut minulle kylmäksi ja vieraaksi, ja sieltä mistä minä
odotin sisarellista osanottoa, saan osakseni välinpitämättömyyttä ja
kylmiä kehoituksia muistamaan velvollisuuksiani."

"Audacia", huudahti prinsessa syvästi liikutettuna — "anna minulle


anteeksi hetkellinen heikkouteni. Onnettomuudeksi minun mielestäni
kuningas on ollut yhtä miellyttävä kuin teistä, ja minä luulin
sokeudessani hänen osoittavan minulle huomaavaisuutta, joka hiveli
itserakkauttani. — Minä luulin teidän huomionne tai arvelunne
koskeneen minua eikä teitä — ja — minä häpeän nyt, jalo
ystävättäreni. Mutta minä tahdon korvata teidän luottamuksenne
minuun, uskomalla teille — että loukattu turhamielisyys ja
jonkinlainen mustasukkaisuus olivat vähällä erottaa meidän
sydämemme, — ja minä voisin melkein ylönkatsoa itseäni.
Suurimmankaan miehen rakkaus ei totisesti ole sen arvoinen, että se
saisi riistää meiltä meidän viimeisen ja ainoan lohdutuksemme —
molemminpuolisen luottamuksen ja ystävyyden." Ystävättäret
syleilivät herttaisesti toisiaan, ja hilpeä Audacia iloitsi sydämensä
pohjasta voidessaan selittää kuninkaan käytöksen siten, että hän itse
sai luopua valloituksesta, joka oli salaisesti häntä miellyttänyt, ja hän
luovutti kernaasti voiton ruhtinaalliselle ystävättärelleen.
Sill'aikaa kun prinsessojen makuuhuoneessa puheltiin näin
tuttavallisesti sydänsalaisuuksista, asteli Valdemar levottomana
edestakaisin huoneessaan ja kävi ankaraa omantunnonoikeutta
kiivaan, nuoren sydämensä kanssa, jota hän ei enää itsekään oikein
ymmärtänyt. Mutta pian uusi, tulinen intohimo voitti. Hänen
mieleltään oli tuo vaikutus, jonka prinsessa Margarethan kuva oli
tehnyt häneen, jonkinlaista noituutta. Se oli haaveilua ja
mielikuvituksenpetosta, ja hän syytti siitä Thorgejr Danaskjaldia,
jonka liioiteltu, hurja kuolleen puukuvan ihaileminen oli yllyttänyt
hänet tuohon haaveelliseen tunnelmaan ja saattanut hänet
rakastumaan kahteen maalattuun silmään. Hän tuomitsi
pikaisuuttaan ja sitä, ettei ollut myöntänyt Junkker Strangen
arveluita oikeiksi.

"Mitä on tämä kuollut kuva elävän rinnalla?" sanoi hän. — "Kreivi


Engelbrekt on oikeassa — hän on maailman kaunein nainen, —
siinäpä vasta olisi kuningatar! — Margaretha ei ole mitään hänen
rinnallaan, vaikka hän olisikin tuon onnettoman kuvan näköinen? —
Lempeä, sinisilmäinen tyttö, — hänestä tulisi luultavasti hellä ja
hurskas äiti, hiljainen, rauhallinen perheenemäntä, — mutta hänessä
ei ole Berengarian tulta eikä korkeaa kuninkaallista voitonkatsetta.
Jos minä olisin haaveileva nuorukainen, jos minun kansani olisi
lammaslauma, ja minun valtikkani paimenhuilu, niin voisi minusta
Margarethan rinnalla tulla rauhallinen, vakava paimen. Mutta
'voittoon ja onneen Wolmari luotiin! se tähtiin kirjoitettiin!' —
Berengaria — niin hän tai ei kukaan on ylpeän voittajan puoliso, hän
seuraisi minua uljaana aseidenloistossa minun ja Tanskanmaan
onneen. Haa, olisiko jo liian myöhäistä, — voisikohan pikaviesti vielä
tavata Junkker Strangen ennenkuin onneton sana on sanottu, — ja
kurja side solmittu, joka kukaties tekee minut orjaksi koko
elämänajakseni — —"
Hän tarttui kiivaasti kellonnauhaan, ja vanha kamarimestari Antero
astui sisään.

"Ivar Glugin on kiireesti valmistauduttava matkalle! Puolen tunnin


kuluttua hän saa tulla hakemaan kirjeensä! Hanki minulle heti
kirjoitusvehkeet!"

"Tässä, minun kuninkaani!" vastasi vanha, uskollinen Antero,


ottaen taskustaan esille, mitä kuningas tarvitsi. "Minä olin
varustautunut kaikkeen. Minä arvelin kyllä pirun olevan merrassa."

"Mitä, luuletko sinäkin heti tietäväsi minun aikomukseni? — No,


mitä sinä arvelit?"

"Enpä juuri mitään, armollinen herrani ja kuninkaani!" vastasi


vanhus. "Mutta jos on kiire, ja te otatte siksi aikaa säilyttääksenne
kalleutenne, niin ehkä minä, niin vanha kuin olenkin, voin yhtä pian
kuin ritari Glug viedä kreivi Albertille teidän viestinne, ja ennemmin
kuin tunnin kuluttua on linna ja kaupunki piiritetty?"

"Mistä sinä uneksit, vanhus? Kuka sellaista ajattelee? Tee mitä


minä sanoin ja vaikene!"

"Yksi sana vain, armollinen herra kuningas!" pyysi vanhus. "Jos te


olette täällä huomannut epäilyttäviä juonia, niin sallikaa minun viedä
teidän kalleutenne varmaan talteen ja antakaa minun vartioida
ovenne kynnystä niin kauan kun te viivytte täällä."

"Hyi, Antero!" vastasi Valdemar. "Luuletko sinä minun olevan


ryövärien ja murhaajien joukossa. Mene ja tottele, elä häpäise
kristillistä ritaria tuollaisilla arvottomilla epäluuloilla!"
Vanha, kuiva Antero kumarsi ääneti ja poistui. Hänen laiha
käsivartensa oli kiertynyt raskaan kultanahkaisen laatikon ympäri,
missä hän säilytti kuninkaan pikaria, timanteilla koristeltuja kalliita
käätyjä ja muita kuninkaallisia koristeita.

"Vanha, uskollinen palvelijani!" sanoi Valdemar, katsoessaan hänen


jälkeensä. "Hän vartioi minun henkeäni ja minun omaisuuttani kuin
lohikäärme, eikä aavista maailmassa olevan suurempia suruja kuin
ryövärien ja murhaajien pelon."

Kuningas kirjoitti nyt nopeasti kirjeen Junkker Strangelle pyytäen,


jos se ei jo ollut myöhäistä, hänen jättämään kosimisen sikseen ja
palaamaan heti kotiin ilman morsianta.

Heti ritarin mentyä kuningas paneutui levolle, ja nukkui lopulta,


rauhattomasti uneksien. Kaunis Helena-rouva näytti hänestä
muuttuneen prinsessa Berengariaksi. Margarethan kuva oli
muuttunut eläväksi, ja hän näytti horjuvan molempien vaiheilla,
jyrkkien kallioitten ja ihanien laaksojen välillä, etäisellä tunturilla
seisoi musta Kullenmies uhaten.

Seuraavana päivänä saapui ritari Ganz kuninkaan käskystä, vahvan


vartiojoukon saattamana linnaan, ja kreivi Henrik vastaanotti hänet
kylmän kohteliaasti. Kuningas ei ollut vielä halukas ryhtymään
vakavampiin toimiin, ja kreivi Henrik ehdotti villisianmetsästystä.
Kuningas suostui heti siihen, varsinkin kuultuaan ettei prinsessa
pelännyt ottaa osaa tähän vaaralliseen huvitukseen, mistä kreivitär
Audacia pyysi olla poissa. Prinsessa otti tapansa mukaan vain kaksi
naisistaan kanssaan, jotka pysyttelivät kunnioittavan matkan päässä
heidän ruhtinaallisesta valtiattarestaan. Metsästysretkille Valdemar
oli usein tilaisuudessa osoittamaan voimiaan ja taitavuuttaan. Kreivi
Henrik huolehti koko ajan siitä, että kuningas sai kunnian kaadetusta
tai haavoitetusta villisiasta, joten Valdemar aina ensiksi osui
metsästyspuukollaan otukseen, vaikka hän olisikin itse ampunut
ratkaisevan nuolen tai heittänyt surmaavan keihään. Mutta heti kun
Valdemar huomasi tämän kömpelön, alhaisen mielistelyn, laimeni
hänen metsästysintonsa. Kun he taas seuraavan kerran ylistivät
kuninkaan osuneen villisiansydämeen, vaikka he eivät olleet nähneet
hänen ampuvan, putosi kotka heidän keskelleen kuninkaan nuoli
rinnassa, osoittaen ettei hän tarvinnut heidän hankkimaansa
kunniaa, eikä hän tarvinnut vieraiden nuolia osuakseen korkeimpaan
ja ylevimpään päämäärään. Prinsessa nauroi ääneen
hämmästyneiden metsästäjien kustannuksella. Tällä
metsästysretkellä kuninkaan täytyi usein ihailla prinsessan uljautta ja
pelkäämättömyyttä. Paluumatkalla hän ratsasti hänen rinnallaan
hiukan seurueen edellä. Kuningas alkoi hänen kanssaan vakavan ja
mieltäkiinnittävän keskustelun, ja häntä hämmästytti se vapaa, ylevä
katse, millä prinsessa katseli maailman iloja ja suruja, sen ihanuutta
ja huonoutta. Ihmetellen kuningas huomasi hänen kohottautuneen
monien aikakautensa ennakkoluulojen yläpuolelle, sekä kirkollisissa
että valtiollisissa asioissa. Kuningas katseli varovaisesti taakseen, ja
nosti sormen suulleen: "Olkaa varuillanne, jalo prinsessa!" sanoi hän
— "Te lausutte vapaasti ja rohkeasti sen minkä minä tuskin uskallan
ajatella salakammiossani; jos joku kolmas kuulisi puheenne, niin
voitaisiin teitä pitää vaarallisena kerettiläisenä."

"Te ette kuitenkaan kenellekään ilmaise minun kerettiläisyyttäni!"


vastasi Berengaria provencelaisella murteellaan ja hymyili. "Siinä
tapauksessa minä olisin suuresti erehtynyt, — minun mielestäni ei
kukaan suurmies voi todenteolla olla aikansa orja, ja vaikka kuningas
Valdemar näyttääkin kantavan aikansa kahleita helposti ja uljaasti,
niin minä uskon kuitenkin teidän olevan aikalaistenne edellä, ja minä
tunnen teidän tähtäävän korkeampaan päämäärään kuin siihen,
mihin keisari ja pyhä isä tahtovat antaa suostumuksensa."

"Jos Jumala suo, niin me puhumme siitä sopivammassa


tilaisuudessa, ihana prinsessa!" vastasi kuningas ja johti keskustelun
vähemmän vakaviin ja vaarallisiin asioihin. Provencelainen runous ja
rakkauslaulut antoivat siten kuninkaalle tilaisuuden vierain ja
hehkuvin sanoin lausua kauniille seuralaiselleen, vapaasti ja
kuitenkin peitetyin sanoin sen, minkä aika ja olosuhteet kielsivät
hänen ilmituomasta suoraan omina tunteinaan ja ajatuksinaan.

"Minä huomaan teidän rakastavan runoutta, jalo herra!" sanoi


Berengaria keskeyttäen tämän keskustelun, jonka viittaukset
kuninkaan esittämissä ja ylistämissä rakkauslauluissa alkoivat olla
liian selvät. "Minä olen kuullut teidänkin hovissanne olevan
runoilijoita. Minua ilahduttaisi suuresti, jos vielä oppisin
ymmärtämään ja tuntemaan Teidän pohjoismaalaisen runoutenne
hengen."

Valdemar lausui nyt hänelle yhden kauniimmista


pohjoismaalaisista ballaadeista. Siinä esiintyi mitä voimakkain ja
syvin rakkaus, suurena ja voitollisena, taistellen vihaa ja vihollisten
esteitä vastaan, ja lopuksi kuolema yhdisti uskollisten sydänten
eroamattoman liiton.

"Teidän pohjoismaalaiset rakastajanne", huomautti prinsessa,


"ovat siis niinkuin kaikki muutkin, jotensakin varovaisia ja arkoja,
kiihkeimmässäkin intohimossaan. He tahtoisivat mieluimmin nähdä
rakastajattarensa polttavan itsensä rakkaudesta, kuin menisivät itse
hirtettäviksi sitä ennen. Minä pidän enemmän tuosta rohkeasta
neidosta. Hänen sijassaan", lisäsi prinsessa ylpeästi, "minä olisin
arvellut hiukan kauemmin ennenkuin annoin polttaa itseni elävältä,
jos olisin tiennyt, että minun uskollisuuteni ensin pantiin
koetukselle."

"Meidän pohjoismaalaiset kaunottaremme", vastasi Valdemar


hiukan loukkaantuneena, "luovuttivat ylpeyden miehille, mutta
koettavat voittaa heidät rakkaudella ja uskollisuudella."

Nyt ennätti metsästysseurue heidät, ja tuntui siltä kuin olisi


Valdemarin ja prinsessan välinen pieni riitaisuus vain saattanut
heidän keskustelunsa vieläkin viehättävämmäksi, kun siihen
sekaantui pieniä sanakiistoja.

Palattuaan takaisin linnaan, vietettiin siellä taas loistava juhla,


jossa tanssin ohella laulettiin ja iloittiin monella tavalla. Kuningas oli
nuorekkaan iloinen ja seurusteli paljon kauniin emäntänsä kanssa,
peittääkseen osaksi mieltymyksensä prinsessaan, ja osaksi myöskin
koetellakseen oliko prinsessan osanotto häntä kohtaan niin suuri,
että se voisi ilmetä pienenä mustasukkaisuuden puuskana. Tämä
onnistui hänelle paremmin kuin hän oli toivonut. Mutta Audacia
ymmärsi nyt viisaasti vetäytyä syrjään. Hän poistui seurasta,
syyttäen pahoinvointia ja antoi kuninkaalle tilaisuuden sopia ylpeän
prinsessan kanssa, ja samaan aikaan rypyt huomattavasti hävisivät
kreivi Henrikin synkiltä kasvoilta.

Näin kului monta päivää alituisissa huvituksissa, ja iloinen


kuningas näytti "aivan" unohtaneen Juhana Ganzin vakavan ja
harmillisen asian. Päivä päivältä hän sotkeutui yhä enemmän
prinsessa Berengarian kahleisiin…
KOLMASTOISTA LUKU.

Sill'aikaa oli Junkker Strange täsmällisesti toimittanut herransa


käskyn. Kuningas Primislaus oli mitä kohteliaimmin vastaanottanut
hänet ja koko komean lähettilässeurueen. Hän oli monta viikkoa
viisaasti peittänyt matkansa oikean tarkoituksen, ja oli sanonut
liittosopimusten sovittelujen olevan syynä hänen jokapäiväisiin
käynteihinsä hovissa. Koko lähetystö kutsuttiin joka päivä
kuninkaalliseen pöytään, jossa silloin tavallisesti kuningatar ja
prinsessa Margaretha olivat läsnä.

Böömin kuningas oli noin 52 vuotias, ystävällinen ja


hyväntahtoinen mies. Hän oli tavallisesti puettu yksinkertaiseen
mustaan, saksalaisen ritarin kotipukuun. Hänen kasvonsa olivat
rehellisen, mutta hieman yksinkertaisen näköiset, ja hänen tukkansa
oli sileäksi kammattu ja keskeltä jakaukselle jaettu kuin
kristuskuvissa. Hän harrasti siveysopillisten mystikoiden oppia, ja
halveksien skolastikoiden viisastelevaa oppineisuutta hänellä oli mitä
ankarimmat mielipiteet itsekieltäytymisestä ja siveellisestä
puhtaudesta. Hän käytti kernaasti puhuessaan raamatullisia
vertauksia, eikä hän milloinkaan tehnyt tärkeämpää päätöstä
neuvottelematta ensin Jumalan äänen kanssa sielussaan, niinkuin
hänen oli tapana sanoa. Tämänlainen tunnelma, samoin kuin Saksan
ritarikunnan puku olivat yleiset hänen hovissaan, ja kuninkaan
työpöydällä olivat aina avattuina sekä Bernhard Clairvaux'in
jumaluusopillisten teosten, että Richard de St. Victoren armon opin
tutkimuksen sirot jäljennökset. Kuningas Primislaus oli
harvapuheinen ja rakasti hiljaisuutta ja ankaria hovitapoja. Senvuoksi
olikin sekä aterioidessa että hovijuhlissa useimmiten hyvin hiljaista ja
jäykkää, ja tanskalaiset ritarit ikävöivät Riibehuusin iloisempaa ja
vapaampaa hovielämää. Mutta Junkker Strange ei tahtonut
hätiköidä. Hän katseli joka päivä prinsessan kuvaa, ja joka päivä hän
tuli yhä enemmän vakuutetuksi siitä, että tuo kultakiharainen,
sinisilmäinen, lapsellisen iloinen ja ystävällinen prinsessa
kauneudessa monenkertaisesti voitti kuvan, mikä oli vain heikko
jäljennös hänestä. Hän etsi niin usein kuin mahdollista tilaisuutta
puhutella prinsessaa, ja hän osasi usein kekseliäästi ja huomaamatta
johtaa keskustelun kuninkaaseensa ja Tanskaan. Aavistamatta hänen
tarkoitustaan, ilmitoi kaunis kuustoistavuotias prinsessa usein
melkein lapsellisen avomielisesti ja hyväntahtoisesti mieltymyksensä
tanskalaisiin, joista hän oli kuullut niin paljon hyvää. Heidät oli
hänelle kuvattu rehellisiksi, hyväntahtoisiksi, hurskaiksi ja uskollisiksi
kuninkaalle ja isänmaalle, he tuntuivat senvuoksi kaikista kansoista
eniten muistuttavan hänen rehellisiä, luotettavia maanmiehiään. Hän
arveli myöskin Tanskanmaan olevan ihanan ja kauniin, ja Valdemar
nimi, joka jo ensimäisen suuren Valdemarin päivistä oli laajalta
kuuluisa vieraissakin maissa, tuntui hänestä olevan arvokas nimi niin
jalosukuiselle ja lahjakkaalle sankarille kuin Tanskan kuningas. Hän
valitti vain ettei kuningas tyytynyt puolustamaan omia rajojaan ja
tekemään jaloa kansaansa onnelliseksi, vaan halusi valloitus- ja
voittoretkille vieraisiin maihin.

Junkker Strange puolusti kuningastaan niin hyvin kuin taisi. Mutta


kaikella kaunopuheisuudellaan hän ei saanut hurskasta ja
rauhaarakastavaa prinsessaa muuttamaan mielipidettään, sillä tämän
mielestä kristillinen ja ritarillinen kuningas laajentaessaan
valtakuntaansa ja voittaessaan suurta nimeä ei ollut oikeutettu
vuodattamaan ainoaakaan pisaraa ihmisverta. Mutta asian laita oli
aivan toinen prinsessan käsityksen mukaan, jos kuningas
kääntäessään pakanoita ja pelastaessaan sieluja, pani omansa ja
muiden hengen alttiiksi, ja jos hän silloin varmasti tunsi, ettei
toiminut kunnianhimosta eikä maallisesta valloitushalusta, vaan
totteli todellakin sielunsa jumalallista ääntä. Hän voi tällä tiellä
voimallisesti elähyttää sisäistä ääntä ja jumalallista valoa itsessään ja
muissa.

Junkker Strange huomasi näistä prinsessan lausunnoista hänen


omaksuneen saman kristillisen maailmankatsomuksen kuin hänen
isänsä. Hän kunnioitti prinsessan hurskasta henkeä ja jaloa sydäntä,
ja nuo ylevät opetukset kaikuivat nyt paljon viehättävämmiltä, kun
hän kuuli ne kauniiden naisten huulilta eikä innokkaalta hengen
mieheltä, joilta hän tähän asti oli kuullut näitä mietelmiä.

Hän ei enää kauemmin arvellut, vaan ilmaisi kuningas Primislaulle


lähettilästoimensa oikean tarkoituksen, kuitenkin niin järkevästi ja
varovasti, että kuninkaan täytyi pitää asia täydellisesti salassa, siinä
tapauksessa että se ei saavuttaisi toivottua tulosta.

Kuningas sulkeutui salakammioonsa neuvotellakseen, sanojensa


mukaan, sydämensä sisimmän äänen kanssa. Sitten hän antoi
kutsua tyttärensä luokseen ja pyysi hänen vastaanottamaan jalon
Tanskan kuninkaan kristillisen tarjouksen. "Hän, jolla on kuninkaiden
sydämet kädessään", sanoi hän, "kutsuu sinut jalo, urhokas paimen
jaloa laumaa paimentamaan ja johdattamaan iäiselle tielle. Elä anna
Hänen kutsua sinua turhaan, vaan alistu nöyrästi Korkeimman
tahtoon ja rukoile Herraa antamaan sinulle viisautta, että voisit
hurskaasti täyttää hänen määräämänsä tehtävän."

Kolmeen päivään ei hurskasta Margarethaa näkynyt aterioimassa


muiden mukana, ja kun hän neljäntenä päivänä astui äitinsä
taluttamana kuninkaan salakammiosta, hämmästyivät kaikki. Sillä
hänen hurskaasta, viattomasta kauneudestaan säteili niin lempeä ja
ystävällinen kirkkaus, ja hänen huolettomaan lapsellisuuteensa,
luonnollisuuteensa ja avomieliseen hyvyyteensä, mitkä olivat hänen
suurin kauneutensa, oli nyt yhdistynyt jonkinlainen, ruhtinaallinen
arvokkaisuus. Ritarien täytyi ehdottomasti kumartaa hänelle
tavallista syvempään kuin valtiattarelleen tai kuningattarelleen.
Innokas Pietari piispa ei voinut pidättäytyä lausumasta sitä maata ja
kuningasta onnelliseksi, joka sai kutsua häntä kuningattarekseen.

Kuningas selittikin nyt juhlallisesti koko hovilleen ja tanskalaisille


lähettiläille, että hänen tyttärensä, neuvoteltuaan Jumalan ja
omantuntonsa kanssa, oli päättänyt vastaanottaa Tanskan kuningas
Valdemarin naimatarjouksen, ja että hän aikoi, jos niin oli
Kaikkivaltiaan tahto, kolmen viikon kuluttua suorittaa säädetyt
vihkiäismenot kuninkaallisen sulhasen sijaisen ja lähettilään kanssa.

Jo ennenkuin vihkimäpäivä oli määrätty, oli Junkker Strange heti


lähettänyt Otto kreivin ja Absalon Belgin viemään iloista sanomaa
kuninkaalle. Mutta kreivi Otto istui tornivankilassa eikä voinut
toimittaa asiaansa, ja Absalon Belg makasi Schwerinin rajalla
majatalossa, sillä hän oli hevosensa kompastuessa pudonnut sen
selästä ja taittanut jalkansa, sekä loukannut vaarallisesti päänsä.

Sillävälin kun nuo molemmat pikaviestit jäivät tulematta ja tärkeä


muutos tapahtui Valdemarin mielessä Schwerinissä, oli juhlapäivä
tullut. Böömiläiskuninkaan suuren ritarisalin lattialle oli levitetty
kallisarvoinen silkkivaate. Koko hovi oli koolla. Kuningas ja
kuningatar istuivat kuninkaallisessa juhlapuvussaan valtaistuimella,
ja heidän välissään istui ihana, kuninkaallinen morsian, yllään
taivaansininen silkkihame ja otsakoriste kalliista helmistä. Junkker
Strange astui esiin torvien soidessa ruhtinaallinen sulhaspuku yllään
Pietari-piispan sekä kolmenkymmenen tanskalaisen ritarin
saattamana.

Junkker Strange polvistui prinsessan eteen, ja pyysi häntä


kuninkaan nimessä ja hänen puolestaan ojentamaan hänelle kätensä
alttarin edessä. Sitten kuningas Primislaus nousi ja seurasi tytärtään
linnankappeliin kuningattaren ja hänen naistensa seuraamana.
Junkker Strangea, joka esitti kuningasta, seurasivat Pietari-piispa ja
kaikki ritarit.

Kun piispa juhlallisesti oli toimittanut vihkimisen, ja lähettiläs per


procurationem [edusmiehenä], joksi häntä kutsuttiin, oli
vastaanottanut ruhtinaallisen morsiamen käden, ja kuninkaansa
puolesta vannonut hänelle uskollisuutta Jumalan ja maailman
edessä, palasi hääjoukko takaisin ritarisaliin. Aterian jälkeen istuutui
morsian lähettilään kanssa kultaisen pelipöydän ääreen. Vanhan
tavan mukaan täytyi morsiamen tulla kolmasti voitetuksi
schakkipelissä; se oli jonkinlainen leikillinen vertauskuva siitä, että
hän oli kadottanut vapautensa ja antanut kätensä onnelliselle
pelaajalle, tai hänelle, jonka puolesta ritari voitti hänet tässä leikissä.

Pelipöydän ääressä, missä he voivat puhua kahden ja rauhassa


muilta, ei tuo kaunis uhkapeliin antautunut morsian voinut olla
tekemättä muutamaa arkaluontoista kysymystä. Hän tahtoi tietää
oliko hänen kuninkaallinen sulhasensa niin kaunis ja jalomuotoinen
kuin hänestä kerrottiin, ja oliko hän uskollinen ja luotettava.
Ensimäiseen kysymykseen Junkker Strange vastasi ilomielin, ja
auringon valaistessa hänen iloisia, avomielisiä kasvojaan ja jaloa
vartaloaan hän nousi ylpeästi ja vakuutti prinsessalle kuninkaan
olevan ainakin kahta vertaa kauniimman häntä. Hän vältti vastata
viimeiseen kysymykseen ja ylisteli muuten kuninkaan yleviä ja suuria
luonteenominaisuuksia ja kertoi tarkkaavaiselle morsiamelle, miten
valtavan vaikutuksen hänen vahasta muovailtu ja puutaululle
kiinnitetty kuvansa oli tehnyt nuoreen, kiihkeään kuningas
Valdemariin.

Ihmetellen ja sydämestään iloiten prinsessa kuunteli tätä hänen


kertomustaan, jota hän olisi pitänyt satuna ellei Junkker Strange olisi
ottanut esille kuvaa ja näyttänyt sitä hänelle. Nyt vasta hän muisti
miten tuo kuva oli tullut tehdyksi, ja hän kertoi Junkker Strangelle,
olleensa kauan epätietoinen voisiko lainata taidetta harrastavalle
luostariveljelle maalliset, mitättömät kasvonsa, ollakseen mallina
pyhän Agneksen kuvaan. Mutta hänen isänsä oli saanut hänet
myöntymään siihen selittäessään, ettei mikään Jumalan lahja ollut
niin maallinen ja mitätön ettei sillä voinut palvella hyvää ja pyhää
tarkoitusta kun me vain teimme sen hurskaalla ja nöyrällä sydämellä.
"Omituinen tapahtuma", lisäsi hän — "eikä vain sattuma, että minä
itse olen avannut tien sen miehen sydämeen, jonka käteen minä
Kaikkivaltiaan tahdosta olen pannut kohtaloni ja koko ajallisen
onneni. Ijäinen onneni", lisäsi hän kyynelsilmin, "on turvallisesti
Herrani ja Vapahtajani siunatussa kädessä."

Myöhään iltaan Junkker Strange istui prinsessan kanssa


pelipöydän ääressä ja kertoi hänelle ilolla kaikkea hyvää mitä vain
tiesi rakkaasta, nuoresta kuninkaastaan. Katsellessaan jaloa
kuninkaallista morsianta, jonka sulhasena hän niin omituisella tavalla
oli jonkun aikaa, hän ei iästään ja rauhallisesta luonteestaan
huolimatta, voinut olla ajattelematta, että jos hän olisi, mitä esitti,
niin hän olisi kadehdittava mies, ja hän kiitti sydämessään Valdemar
kuningasta onnelliseksi, jolle hän sai viedä näin jalon aarteen. Hän
varoi kuitenkin omantunnonmukaisesti sanomasta ainoatakaan
sanaa, mikä olisi ilmaissut näin rohkean ajatuksen.

Mutta vielä oli eräs tapa jälellä, joka saattoi sekä kainon
prinsessan, että Junkker Strangen hämilleen, mutta sitä ei voitu
välttää. Kuninkaan käskystä keskeytti prinsessan hovimestari, herra
Ib Urne, pelipöytä-seurustelun ja pyysi Tanskan kuninkaan sijaisen
seuraamaan morsiantaan morsiushuoneeseen.

Molemmat punastuivat. Mutta päättäväinen lähettiläs nousi heti ja


ojensi kunnioittavasti prinsessalle käsivartensa, minkä jälkeen hän
koko hovin seuraamana saattoi hänet komeaan morsiushuoneeseen.
Täällä hänen täytyi täydessä morsiuspuvussaan paneutua levolle
ruhtinaalliselle vuoteelle. Junkker Strangen täytyi istuutua tuolille
hänen viereensä, ja asettaa oikean jalkansa kiiltävä saapas vuoteen
reunalle, kuitenkin niin keveästi, ettei kultakannus jättänyt
pienintäkään jälkeä hienoon liinaan.

Tämä omituinen tapa suoritettiin mitä suurimmalla


hienotunteisuudella, ja heti senjälkeen kun Junkker Strange oli
keveästi koskettanut lakanaa saappaallaan ja asettanut jalkansa
lattiamatolle, nousivat he molemmat. Lähettiläs kumarsi kunnioittaen
nuorelle kuningattarelle ja poistui muutamien häävieraiden ja
todistajien kera morsiushuoneesta.

Seuraavana päivänä olivat kadut linnasta laivasillalle peitetyt


kalliilla silkkimatoilla. Rannassa oli kuninkaan lohikäärmekeulainen
laiva purjekunnossa. Kun nuori, ihana Tanskan kuningatar astui
laivaan Junkker Strangen ja koko hovin seuraamana, tervehti kansa
häntä ilohuudoin, ja moni köyhä vuodatti katkeria eronkyyneleitä.

Liikutettuna hurskas ruhtinaspari sanoi hyvästi ainoalle, rakkaalle


tyttärelleen, ja kuningas Primislaus antoi hänelle vielä monta isällistä
neuvoa, kehoittaen hänen olemaan hyvänä äitinä kansalleen, ja
alamaistensa tukena ja turvana. Sydämellisen hellästi ja lapsellisia
kyyneleitä vuodattaen, syleili Margaretha rakkaita vanhempiaan, ja
lupasi uskollisesti panna mieleensä kaikki heidän varoituksensa.
"Enkä minä suinkaan unohda vangittua, uskollista piispaa!" kuiskasi
hän hyvästi jättäessään äitinsä korvaan —"mutta elä sinäkään äiti
unohda minun köyhiäni ja sairaitani täällä kotona!" Hän tervehti vielä
kerran rakkaita maamiehiään lempeästi ja sydämellisesti, ojensi
hovimestarilleen kukkarollisen kultarahoja, jotka tämä heti jakeli
kaikille niille köyhille, jotka seisoivat itkien rannalla.

Kun Margaretha nyt laivaan noustessaan näki köyhiensä itkevän ja


siunaavan häntä, ja vanhempansa seisovan niin yksin ja hyljättyinä
laivasillalla, kätki hän kasvonsa viittansa poimuihin ja itki katkerasti.
Hänestä tuntui, ettei hän enää koskaan näkisi isää ja äitiä ja
isänmaataan, ja hänen mielestään hän oli jakanut sielunlahjoja
köyhille, että he rukoilisivat hänen sielunsa puolesta.

Juuri kun Junkker Strange aikoi astua laivaan tunkeutui tomuinen


ratsastaja kansanjoukon läpi ja hyppäsi laivasillan luona ratsunsa
selästä. Se oli ritari Glug, joka hengästyneenä ja melkein
hengetönnä kiivaasta ratsastuksesta ojensi Junkker Strangelle
kuninkaan kirjeen.

Hämmästyneen lähetin ei tarvinnut kysyä keneltä kirje oli. Hän


tunsi heti viheriästä silkkinauhasta riippuvan punaisen vahasinetin.
Hän avasi nopeasti kirjeen ja kalpeni. Levottomana kuningas
Primislaus lähestyi häntä ja kysyi oliko jokin onnettomuus
tapahtunut, koska kirje näytti olevan Jobinposti.

Junkker Strange tointui nopeasti. "Kyllä se ainakin minulle on


Jobinposti!" vastasi hän, pistäessään huolellisesti kirjeen povelleen.
"Minun armollinen kuninkaani ilmoittaa minulle rakkaimman poikani
sairastuneen vaarallisesti ja ehkä kuolettavasti, ja pyytää minun
kiirehtimään, jos tahdon nähdä hänet elävänä. Minun herra
kuninkaani lähettää Teille sen ohella veljelliset tervehdyksenä. Mutta
hän ei ollut vielä ehtinyt vastaanottaa sitä onnellista kirjettä, jonka
minä hänelle lähetin. Rauha olkoon teille, hurskas herra ja
kuningas!" lisäsi hän nopeasti, huomatessaan levottoman ilmeen
kuninkaan kasvoilla. "Minun ei kannata ajatella omit; surujani
ennenkuin minä olen jättänyt teidän jalon tyttärenne hänen
kuninkaalliselle sulhaselleen."

Sen sanottuaan hän nousi laivaan, ja käski heti nostaa purjeet.

"Jos te näette kuninkaan ennen minua, ritari Glug!" huusi hän


ritarille, joka seisoi odottaen laivasillalla, — "niin sanokaa hänelle
mitä te olette kuullut ja nähnyt, sekä kertokaa myöskin minun
tänään purjehtineen täältä hänen ja Tanskan jalon kuningattaren
seurassa! — Eläköön nuori kuningatar!" Hän heilautti hattuaan, ja
yleinen "Eläköön Tanskan kuningatar, eläköön Böömin Margaretha,
eläköön Danxmar!" kajahti sekä laivasillalta, laivalta, että
äärettömien väkijoukkojen täyttämiltä joen äyräiltä. Lippujen
liehuessa ja laulun ja soiton kajahdellessa laiva luisui hiljalleen alas
virtaa.
TOINEN OSA
ENSIMÄINEN LUKU.

Samana päivänä, jona Junkker Strange salaisen huolen


painostamana jätti Pragin ja mahdollisimman hitaasti matkasi Elbeä
alaspäin mukanaan kaunis, surumielinen kuninkaanmorsian, olivat
Klaus-kreivin ja kreivitär Idan häät Schwerinin linnassa. Valdemar oli
edellisenä päivänä ratkaissut Juhana Ganzin ja kreivi Henrikin välisen
asian, sekä antanut kreiville anteeksi hänen väkivaltaisen tekonsa
sillä ehdolla, että hän vuoden kuluessa uudistaisi Gråbon linnan,
täydellisesti korvaisi kaikki Juhana Ganzin kärsimät vahingot, sekä
kuninkaan läsnäollessa ojentaisi hänelle kätensä sovinnoksi. Ylpeä
kreivi Henrik oli viisaana alistunut näihin ehtoihin, vieläpä veljensä
suostumuksella antanut puolet Schwerinin linnasta ja kreivikunnasta
kreivitär Idan myötäjäisten ja äidinperinnön lunnaiksi.

Kreivi Henrik lopetti näennäisesti mitä parhaassa sovussa Tanskan


kuninkaan kanssa päivän juhlallisuudet pidoilla, jotka olivat vieläkin
komeammat kuin mitkään edellisistä.

Onnellinen Klaus-kreivi arveli harvapuheisen ja totisen


morsiamensa hiljaisten kyynelten olevan vain iloisen
vihkiäisjuhlallisuuden aiheuttamia. Mutta kreivi Henrik loi usein
sisareensa tuikean ja varoittavan katseen. Tämä kokosi kaiken
voimansa näyttääkseen rauhalliselta ja tyytyväiseltä täyttäessään
veljiensä vaatiman uhrauksen. Ei juolahtanut Valdemarin mieleen,
että jalo naissydän salaisesti syytti häntä kovaksi ja julmaksi
rauhanrikkojaksi. Hänen mielestään kreivi Klaun morsian oli vain
tavallinen, vähäpätöinen hovisielu, jolle säädynmukainen naiminen
oli ulkonaisten olosuhteiden ja tuttavuuksien mieluisa muutos.
Kuningas näki ja ajatteli vain kaunista Berengaria-prinsessaa.
Arkkipiispa Antero oli kyllä huomannut hänen päivä päivältä
kiihtyvän intohimonsa ja varoittanut häntä siitä, muistuttaen hänelle
Junkker Strangen lähettiläsmatkaa, minkä tarkoituksen hän tiesi.
Mutta nämä varoitukset eivät paljoakaan hyödyttäneet. Kuningas oli
tosin luvannut hurskaalle, uskolliselle ystävälleen olla varuillansa ja
lähteä Schwerinistä niin pian kuin suinkin. Mutta hän odotti täällä
ratkaisevaa sanomaa Böömistä, ja sen pitkällinen viipyminen antoi
hänelle aiheen toivoa, että ritari Glug oli ehtinyt toimittaa asiansa.
Hän uneksi jo olevansa kaikista siteistä vapaa. Toivon iloisessa
hurmauksessa hän oli sinä päivänä ahkerasti tarttunut pikariin, ja nyt
iltapuolella hän seisoi loistavan salin ikkunan ääressä välkkyvässä
auringonvalossa hilpeästi ja tuttavallisesti keskustellen ihastuttavan
portugalilaisen prinsessan kanssa.

Kesken mieltäkiinnittävää keskustelua hämmästytti molempia


voimakas ja kiihkeä harpunsoitto, ja syvä, voimakas ääni lauloi sen
säestämänä voiton ja kauneuden ylitystä. Laulaja oli islantilainen
runoniekka, Olavi Hvitaskjald. Hän oli älykkäästi huomannut mitä
kuninkaan ja kauniin prinsessan sydämissä liikkui, ja hän käytti
tilaisuutta hyväkseen osoittaakseen soveliaana hetkenä kuninkaalle,
että hänkin osasi taidon liikuttaa sydämiä, eikä vain hentomielinen
Thorgeir Danaskjald. Hän tiesi mitä kieliä hänen täällä oli
kosketeltava, eikä hän laulanut lempein, riutuvin sävelin hiljaisesta,
tyynestä kauneudesta, ja rauhanruhtinaan levollisesta onnesta.
Hänen harppunsa sävelet soivat rajuina ja mahtavina kuin myrsky
riehuvalla merellä, ja hän lauloi ylevin voitonsävelin sankarin
ihanasta pyrkimyksestä kuolemattomuuteen ja ikimaineeseen,
niinkuin Skjoldin ja Danin ylhäistä sankarikulkua walkyrian
ohjaamana. Hän kuvaili sankarin rohkein piirtein — siitä syntyi
Valdemarin kuva. Hän kuvaili ylevän, rohkean walkyrian, —
Berengarian kaltaiseksi.

"Suurenmoista! Ihanaa!" huudahti prinsessa nuorelle,


innostuneelle kuninkaalle. "Minä en ymmärrä paljoakaan laulun
sisällöstä, mutta ne ovat Pohjolan säveliä: sellaisiksi minä olenkin
kuvaillut nuo urhojen laulut, ja minä tunnen sieluni olevan
sopusoinnussa teidän ylevän, ihmeellisen sankarikansanne kanssa."

Valdemarin posket hehkuivat, hänen rohkeat silmänsä säkenöivät.


Hän tarttui prinsessaa käteen ja puristi sitä intohimoisesti; jo väikkyi
sana hänen huulillaan, joka selvimmin olisi ilmaissut hänen
sieluntilansa. Mutta silloin astui arkkipiispa Antero totisena ja
varoittavana hänen luokseen. "Minun herrani ja kuninkaani!" sanoi
hän. "Viesti Böömistä." Valdemar kalpeni ja päästi prinsessan käden.
"Böömistäkö?" hän kysyi. — "Ritari Glug? — Ei, se on mahdotonta!"

"Teidän sisarenpoikanne Otto, Lüneburgin kreivi", vastasi


arkkipiispa, ja samassa astui sisään, kreivi Henrikin ja ruhtinaiden
hämmästykseksi, nuori vangittu kreivi, yllään halpa
aseenkantajanpuku, vapaasti ja rohkeasti tervehtien kuningasta ja
koko seuruetta ruhtinaallisen arvokkaasti.

"Seuraa minua huoneeseeni!" sanoi Valdemar horjahtaen; mutta


hän kokosi äkkiä kaiken voimansa, ja hän pyysi näennäisen tyynesti
prinsessan ja kreivi Henrikin suomaan anteeksi, että hänen täytyi
jättää heidät tärkeiden valtioasioiden tähden. Kuningas poistui
kiireesti kreivi Oton seuraamana, ja kaikki huomasivat jonkin tärkeän
ja ikävän asian tehneen hänet alakuloiseksi. Prinsessa oli valahtanut
kalpeaksi, ja syyttäen pahoinvointia hänkin poistui seurasta. Kreivi
Henrik katsoi vapautetun kreivi Oton jälkeen, ja polkastessaan
suuttuneena lattiaan hän puraisi suonenvedontapaisesti huuleensa.
Mutta kreivi Adolf sekä Hildesheimin piispa koettivat hillitä hänen
vihaansa ja kiirehtivät hänen sekä vendiläisten ruhtinaiden kanssa
kreivin salakammioon neuvotellakseen siellä salaisesti, mitä näiden
arveluttavien asianhaarojen vallitessa oli tehtävä.

"Meidät on petetty!" huudahti kreivi Henrik. "Se helvetin poika


osaa noitua, — tai täällä meidän joukossamme on pettureita. Ei
pirukaan pääse pakenemaan siitä tornista, ja tuossa riippuu avain. —
Nopea ja rohkea toiminta voi ehkä vielä pelastaa meidät. Kolmen
tunnin kuluttua voi Kreivi Albert hyökätä linnaa vastaan; — — mutta
jos kuningas sitä ennen istuu tornissa — —"

"Liiallista uhkapeliä!" keskeytti hänet Hildesheimin piispa. "Mutta


minä luulen että voimme luottaa nuoreen kreivi Ottoon. Ehkä tämä
paperiliuska selittää meille enemmän, sen hän ojensi minulle salaa
ohikulkiessaan."

"Lukekaa, lukekaa!" huusivat kaikki. Piispa kiersi auki pienen


pergamenttiliuskan ja luki:

"Sen vaikenemislupauksen, mihin eivät mitkään uhkaukset


voineet minua pakottaa, on Schwerin suvun hyvä
suojelushenki taivuttanut minut vapaaehtoisesti antamaan.
Niin kauan kuin kreivi Henrik ja hänen ystävänsä eivät ryhdy
mihinkään vihamielisiin yrityksiin heidän lääninherraansa,
minun kuninkaallista enoani vastaan, ei ainoakaan ihminen
saa tietää, mitä minä täällä olen kuullut ja nähnyt. Sen
vakuudeksi minä panen ruhtinaallisen kunniani; mutta ei
hetkeäkään kauemmin ole kieleni sidottu.

Otto, Lüneburgin kreivi."

"Hm!" mutisi kreivi Henrik. — "Kyllä sekin hetki vielä koittaa,


jolloin voimme antaa poikanulikan vapaasti puhua. Aluksi meidän
täytyy luottaa häneen ja pysyä rauhallisina. Minä melkein uskon
hellätuntoisella Ida sisarellani olleen osansa tässä asiassa!" — lisäsi
hän katsellessaan vankilanavainta, joka riippui oven puolella eikä
ikkunan luona.

"Jos niin on", alkoi vakava kreivi Adolf puhua, "niin olkaamme
kaikki kiitollisia teidän jalolle sisarellenne: hänen sydämensä ja
järkensä ovat yksissä neuvotelleet, muuta ei voisi odottaa kreivi
Henrikin sukulaiselta."

Tämä arvelu ei ollut aiheeton. Kreivitär Ida oli jo linnan sillalla


huomannut nuoren, vieraan aseenkantajan myötätuntoisen katseen,
palatessaan tuona iltana kotiin metsästysretkeltä. Hän oli ikkunansa
vastapäätä olevasta vankilatornista usein viime päivinä kuullut
heleän, nuoren äänen laulavan tanskalaisia sankarilauluja ja oli
ottanut tarkemman selon uudesta valtiovangista. Saatuaan kuulla,
että vanki oli tuo sama nuori aseenkantaja, ja että hän oli sanonut
olevansa Lüneburgin kreivi Otto, sekä mitä lisäksi tiedettiin hänen
vangitsemisensa syistä, niin hän ei kauemmin epäillyt, vaan käyttäen
hyväkseen vapaata pääsyään veljensä salakammioon, hän anasti
sieltä vankilanavaimen. Hänen ainoana ilonaan hääpäivänään oli siis
ollut tämän tärkeän vangin vapauttaminen, joka kunniasanallaan ja
vaitiololupauksella oli taannut hänen seurauksilta. Otto ei tiennyt
oliko Absalon Belg jo saapunut, ja hän oli levoton siitä, että hänen
niin kauan oli täytynyt salata kuninkaalta tärkeä sanoma. Sen mitä
kreivin tärkeät uhkaukset eivät saaneet aikaan, voitti kreivitär Ida
muutamalla ystävällisellä sanalla, ja hän toivoi näin parhaiten
vahvistavansa veljensä ja Tanskan kuningashuoneen välisen rauhan.

Valdemar astui varhain seuraavana aamuna huoneestaan, ja hän


antoi miehillensä käskyn heti lähteä matkalle. Hänen kasvonilmeensä
oli harvinaisen jännittynyt, ja hänen katseensa levoton. Hän jätti
kiireesti hyvästi kreivi Henrikille ja hänen veljelleen, kiitti heitä
kohteliaasti heidän osoittamastaan vieraanvaraisuudesta ja pyysi
kreivin tervehtimään puolisoansa ja prinsessa Berengariaa, kun hän
ei voinut odottaa soveliampaa aikaa saadakseen sanoa heille hyvästi.
Hetken kuluttua Valdemar istui oivallisen oriinsa selässä, ja hän
ratsasti nelistäen koko seurueensa kera linnansillan yli ja läpi
nukkuvan kaupungin. Leiriin saavuttuaan hän pysähtyi vasta kreivi
Albertin teltan edustalle, antaakseen tälle käskyn seurata häntä, ja
päästää sotajoukko kotiin. Mukanaan kahtavertaa isompi ritari- ja
aseenkantajaseurue, kuningas riensi sitten tuimana, kuin sotaretkelle
lähtiessä, vastaanottamaan kuningatartaan Manöseen.

Arkkipiispa Antero ei ollut ainoa, joka arvasi kuninkaan


synkkämielisyyden syyn. Kuultuaan syyn tähän pikaiseen lähtöön,
luulivat Gunnar-veli ja islantilainen runoilija myöskin ymmärtävänsä
kuninkaallisen sulhasen tunteet. Mutta Otto kreiville oli tämä kaikki
vielä arvoitusta. Hän luuli tuoneensa enolleen hyvin iloisen sanoman,
eikä hän voinut käsittää sitä tyytymättömyyttä ja kiivautta, millä
kuningas oli vaatinut häneltä hävitettyä kirjettä, jonka sisällön hän
kuitenkin sanasta sanaan oli kertonut kuninkaalle. Valdemar oli
vaatinut häneltä tarkkaa tilintekoa hänen viipymisestään. Mutta Oton
lupaus esti häntä puolustautumasta, ja hän joutui vieläkin enemmän
kuninkaan epäsuosioon selittäessään avomielisesti joutuneensa
onnettomuuteen, minkä hän oli sitoutunut pitämään salassa.
Tyytymättömänä ratsasti Otto kreivi nyt kuninkaan vieressä, uskoen
viestin viipymisen yksinomaan olevan syynä kuninkaan
alakuloisuuteen, sillä hän luultavasti syystä pelkäsi ettei ehtisi ajoissa
kuningatarta vastaanottamaan.

Kreivitär Ida, joka Klaus kreivin rinnalla, hovinaistensa ja


neitostensa seuraamana, kevytjalkaisella metsästysratsullaan oli
saavuttanut kuninkaan, seuratakseen häntä puolisonsa kanssa
Riibeen, huomasi osanotolla sen pulan ja levottomuuden, mihin hän
ennen mainitulla vaitiolonlupauksella oli saattanut kreivi Oton.
Muiden huomaamatta kreivitär loi häneen ystävällisen, luottavan
katseen ja nosti sormen suulleen. Otto vastasi ääneti tähän mykkään
muistutukseen laskemalla kätensä rinnalleen, ja hän lohduttautui
kuninkaan epäsuosiosta vakuuttamalla itselleen, että hän tällä
hetkellä parhaiten palveli kuningasta vaikenemisellaan ja samalla
hän rauhoitti jaloa Ida-kreivitärtä hänen veljensä suhteen.

Ennen kuin kuningas ehti Ejdervirralle, tuli hänen sisarenpoikansa


kertomus kylliksi varmennetuksi. Seurueen pysähtyessä hevosia
vaihtamaan, saavutti sen lyhyt, paksu, pölyinen ratsastaja. Kun hän
hypähti hevosensa selästä, tunsi kuningas heti Absalon Belgin,
vaikka hänen kasvonsa olivat kalpeat ja hänen käyntinsä ontuva.
Mutta ennen kuin Absalon Belg selitti pitkällisen viipymisensä syyn,
hän ojensi kuninkaalle sinetillä suletun kirjeen, ja selitti tavalliseen
iloiseen tapaansa että vaikka hän sillä kertaa ei voittanutkaan
kultakannuksia pikaviestillään, niin ei hänen tuomansa ilosanoma
tainnut olla kovinkaan vanha, koska kuningas nyt vasta oli matkalla
onneansa kohden.

Vastaamatta kuningas repäisi heti sinetin kirjeestä, ja luki sen


synkän näköisenä kuin vanki, joka lukee oman kuolemantuomionsa.

You might also like