CS349 User Interfaces
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Week 03

Tues May 23, 2023

Lecture

  • Widgets

Office Hours

Mostly normal schedule this week

  • Nikhita moved to 3 PM today
  • Jeff @ 1 PM today, and 4 PM Thurs

Quiz this Friday!

Covers content up to the end of last week https://student.cs.uwaterloo.ca/~cs349/1235/schedule/quizzes/

A1 Posts on Piazza

https://piazza.com/class/lh0ol1x76py6gm

Please make posts public if you can!

  1. How do we handle window resizing? What is the window resolution? There is no requirement to make the window resizable. You can either have it non-resizable OR handle resizing.

  2. What is an invalid filename? Assume a Unix-based file system. What constitutes a valid filename? What could invalid mean?

  3. File chooser - which class to use? Use the JFX version of the file chooser (I actually don’t care which one you use, this will be the easiest/best integrated).

  4. What does ‘selected’ in the status bar mean? What if nothing is selected. Consistency is the key… either force something to be always selected, or clear the status line with nothing is selected.

  5. Should menubars (e.g. File, Edit, View) be selectable, and how do we decide what goes under each menu? Look at the spec to write down each item that states that it should have a menu item, then decide where they go. Look at existing apps for ideas. Apart from obvious ones (File-Quit) you have flexibility on how you structure this.

Sample code won’t build in IntelliJ!

  1. It’s probably a configuration issue
  2. Check File - Project Settings - Project, SDK.
    • Java JDK 17 should be installed
  3. Gradle - Build - Clean, Gradle - Build - Build
  4. Fallback: install JDK manually and run ./gradlew clean build run

Wed May 24, 2023

Lecture

  • Layout

Sample code for A1

Quiz this Friday!