CMSC 498B/838B: DUI - Spring 2005Introduction | |
What this class isDeveloping user interfaces - what is a user interface?
This class covers 2D desktop systems, not voice, tactile, olfactory, etc. We will discuss basic concepts about styles and architectures of building interfaces and compare/contrast specific systems (Java and C#) Class philosophy
Who is in this class? IntroductionThe predominant current paradigm of interfaces is that of GUIs consisting of pages of layouts of interactive widgets. This is a reasonable model that covers much of the world of interfaces today, but not everything: think of simpler systems such as text-based ones, more graphical applications such as games or visualizations, and of course input other than a mouse, such as a 6 degree-of-freedom "spaceball". Interactive cycle
This entire cycle is captured through the "model-view-controller" (MVC) paradigm. Examples: Scrollbar, menu Hello World in Java/* * A simple Java program that displays some text. * Compile with: "javac HelloWorldText.java" * Run with: "java HelloWorldText" * * Ben Bederson, January 16, 2002 */ public class HelloWorldText { public static void main(String[] args) { System.out.println("Hello world!"); } } /* * A simple Java program that displays some text in a window. * Compile with: "javac HelloWorldGUI.java" * Run with: "java HelloWorldGUI" * * Ben Bederson, January 16, 2002 */ import java.awt.*; import javax.swing.*; public class HelloWorldGUI extends JFrame { public HelloWorldGUI() { // Create a window setTitle("Hello world!"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Create a "label" component JLabel label = new JLabel("Hello world!"); label.setForeground(Color.blue); label.setFont(new Font("Arial", Font.BOLD, 24)); // Insert the label into the window getContentPane().add(label); getContentPane().setBackground(Color.white); pack(); // Calculate the size of the window setVisible(true); // Make the window visible } public static void main(String[] args) { new HelloWorldGUI(); } } /* * A simple program that displays some text in a browser. * Compile with: "javac HelloWorldApplet.java" * Run with: "appletviewer HelloWorldApplet" * * Ben Bederson, January 16, 2002 */ import java.awt.*; import javax.swing.*; public class HelloWorldApplet extends JApplet { public HelloWorldApplet() { // Create a "label" component JLabel label = new JLabel("Hello world!"); label.setForeground(Color.blue); label.setFont(new Font("Arial", Font.BOLD, 24)); // Insert the label into the window getContentPane().add(label); getContentPane().setBackground(Color.yellow); } public static void main(String[] args) { new HelloWorldApplet(); } } Hello World in C#/* * A simple program that displays some text. * Compile with: "csc hello-world-text.cs" * Run with: "hello-world-text" * * Ben Bederson, January 16, 2002 */ using System; public class HelloWorldText { public static void Main() { Console.WriteLine("Hello world!"); } } /* * A simple C# program that displays some text in a window. * Compile with: "csc hello-world-gui.cs" * Run with: "hello-world-gui" * * Ben Bederson, January 16, 2002 */ using System; using System.Drawing; using System.Windows.Forms; public class HelloWorldGUI : System.Windows.Forms.Form { public HelloWorldGUI() { Text = "Hello world!"; BackColor = Color.White; // Create a "label" component Label label = new Label(); label.Text = "Hello world!"; label.ForeColor = Color.Blue; label.Font = new Font("Arial", 24, FontStyle.Bold); label.AutoSize = true; // Insert the label into the window Controls.Add(label); } public static void Main() { Application.Run(new HelloWorldGUI()); } } /* * A simple C# program that displays some text in a webpage. * Compile with: "csc /t:library hello-world-applet.cs" * Run byte deploying in a webpage with: * <object classid="http:hello-world-applet.dll#HelloWorldApplet" * width="200" height="100"></object> * * Ben Bederson, January 16, 2002 */ using System; using System.Drawing; using System.Windows.Forms; public class HelloWorldApplet : System.Windows.Forms.Control { public HelloWorldApplet() { // Create a "label" control Label label = new Label(); label.Text = "Hello world!"; label.ForeColor = Color.Blue; label.Font = new Font("Arial", 24, FontStyle.Bold); label.AutoSize = true; // Insert the label Controls.Add(label); } } C# Visual Studio.NET Project (hello-world-gui.zip) - created with form designer
|