// LogicalOperatorsApplet.java (adopted from 5.19 LogicalOperators)
// Demonstrating the logical operators
// Java core packages
import java.awt.*;
// Java extension packages
import javax.swing.*;
public class LogicalOperatorsApplet extends JApplet{
public void init()
{
// get applet's content pane (GUI display area)
Container container = getContentPane();
// create JTextArea to display results
JTextArea outputArea = new JTextArea( 17, 20 );
// attach JTextArea to a JScrollPane so user can
// scroll through results
JScrollPane scroller = new JScrollPane( outputArea );
String output;
container.add(scroller);
// create truth table for && operator
output = "Logical AND (&&)" +
"\nfalse && false: " + ( false && false ) +
"\nfalse && true: " + ( false && true ) +
"\ntrue && false: " + ( true && false ) +
"\ntrue && true: " + ( true && true );
// create truth table for || operator
output += "\n\nLogical OR (||)" +
"\nfalse || false: " + ( false || false ) +
"\nfalse || true: " + ( false || true ) +
"\ntrue || false: " + ( true || false ) +
"\ntrue || true: " + ( true || true );
// create truth table for & operator
output += "\n\nBoolean logical AND (&)" +
"\nfalse & false: " + ( false & false ) +
"\nfalse & true: " + ( false & true ) +
"\ntrue & false: " + ( true & false ) +
"\ntrue & true: " + ( true & true );
// create truth table for | operator
output += "\n\nBoolean logical inclusive OR (|)" +
"\nfalse | false: " + ( false | false ) +
"\nfalse | true: " + ( false | true ) +
"\ntrue | false: " + ( true | false ) +
"\ntrue | true: " + ( true | true );
// create truth table for ^ operator
output += "\n\nBoolean logical exclusive OR (^)" +
"\nfalse ^ false: " + ( false ^ false ) +
"\nfalse ^ true: " + ( false ^ true ) +
"\ntrue ^ false: " + ( true ^ false ) +
"\ntrue ^ true: " + ( true ^ true );
// create truth table for ! operator
output += "\n\nLogical NOT (!)" +
"\n!false: " + ( !false ) +
"\n!true: " + ( !true );
outputArea.setText( output ); // place results in JTextArea
} // end method init
} // end class LogicalOperatorsApplet

// Fig. 5.19: LogicalOperators.java
// Demonstrating the logical operators
// Java extension packages
import javax.swing.*;
public class LogicalOperators {
// main method begins execution of Java application
public static void main( String args[] )
{
// create JTextArea to display results
JTextArea outputArea = new JTextArea( 17, 20 );
// attach JTextArea to a JScrollPane so user can
// scroll through results
JScrollPane scroller = new JScrollPane( outputArea );
String output;
// create truth table for && operator
output = "Logical AND (&&)" +
"\nfalse && false: " + ( false && false ) +
"\nfalse && true: " + ( false && true ) +
"\ntrue && false: " + ( true && false ) +
"\ntrue && true: " + ( true && true );
// create truth table for || operator
output += "\n\nLogical OR (||)" +
"\nfalse || false: " + ( false || false ) +
"\nfalse || true: " + ( false || true ) +
"\ntrue || false: " + ( true || false ) +
"\ntrue || true: " + ( true || true );
// create truth table for & operator
output += "\n\nBoolean logical AND (&)" +
"\nfalse & false: " + ( false & false ) +
"\nfalse & true: " + ( false & true ) +
"\ntrue & false: " + ( true & false ) +
"\ntrue & true: " + ( true & true );
// create truth table for | operator
output += "\n\nBoolean logical inclusive OR (|)" +
"\nfalse | false: " + ( false | false ) +
"\nfalse | true: " + ( false | true ) +
"\ntrue | false: " + ( true | false ) +
"\ntrue | true: " + ( true | true );
// create truth table for ^ operator
output += "\n\nBoolean logical exclusive OR (^)" +
"\nfalse ^ false: " + ( false ^ false ) +
"\nfalse ^ true: " + ( false ^ true ) +
"\ntrue ^ false: " + ( true ^ false ) +
"\ntrue ^ true: " + ( true ^ true );
// create truth table for ! operator
output += "\n\nLogical NOT (!)" +
"\n!false: " + ( !false ) +
"\n!true: " + ( !true );
outputArea.setText( output ); // place results in JTextArea
JOptionPane.showMessageDialog( null, scroller,
"Truth Tables", JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 ); // terminate application
} // end method main
} // end class LogicalOperators