★ wanayoo — archive 1999 http://developer.java.sun.com/developer/community/chat/JavaLive/1997/jl0909.htmlNouvelle recherche | Portail wanayoo
Java Technology Home Page
A-Z Index

Java Developer Connection(SM)
Chat

Downloads, APIs, Documentation
Java Developer Connection
Tutorials, Tech Articles, Training
Online Support
Community Discussion
News & Events from Everywhere
Products from Everywhere
How Java Technology is Used Worldwide
 
JavaLive Transcripts Index

Java Live
JavaTM Native Look and Feel
September 09, 1997

Moderator (MDR): MDR-lisa

Guest Speaker (SPK): SPK-vertelney and SPK-yopu

MDR-lisa: Hi, I'm Lisa Stapleton, editorial director of the JDC, and I'm here with our guests: Sun's Harry Vertelney and Chris Ryan (login: yopu), who are here to talk about look and feel issues. Feel free to start sending in questions as soon as they occur to you.

SPK-vertelney: Hi everyone, nice to have you here.

acohen: Here's a question from someone who's been developing Java server applications for a while, but has almost no GUI experience: What are the important issues and problems people face in regard to look and feel, and what remedies does JavaSoftTM have for these problems?

SPK-vertelney: Just as an introduction, some of the issues we're interested in have to do with cross-platform design. For example: How does general UI behavior coexist on various platforms—i.e. a Java Look and Feel within a Mac or Windows environment? One of our goals is to maintain the "muscle memory" of the UIs everyone is familar with, and at the same time bring out the unique characteristics of Java—such as security and client/server orientation versus disk-based systems.

acohen: I can see where "muscle memory" is an important point—that is, the right (or middle) mouse button should do what you expect on a given platform, but where does this collide with a client/server orientation?

SPK-yopu: An example might be the location of a particular control—for instance, the close control on a window frame. By "muscle memory" we mean a general familiarity with existing interfaces.

uomini: It seems to me that any interface you come up with will look foreign to users of the particular platform, and that could cause usability problems vis-a-vis the other apps running on that platform.

SPK-yopu: One of the goals of creating a cross-platform look and feel is to reduce some of the differences between the platforms—Java is platform-independent. For instance, training materials could be simplified with a uniform interface.

jjlesko: Do you intend to allow a cross-platform UI within an application or applet? (For instance, allow Windows scrollbars in a Macintosh browser?) Or is look and feel intended to remove some of the discrepancies in the existing virtual machines?

SPK-vertelney: Yes, anything is possible with pluggable components, however, reasonable design might dictate that such a mix would yield poor results.

SPK-yopu: The Swing components will let you mix and match widgets. But we are building a set of components that is internally consistent, intended to be used as a set.

Is anyone here developing for Network Computers, or doing enterprise applications? Are you facing cross-platform development problems?

uomini: In response to yopu's question, I have developed an app where cross-platform compatibility is crucial, and the problem I'm having is with sun.net not considered as Java, i.e., all of a sudden, my app is not 100% pure. Care to comment?

MDR-lisa: Actually, uomini, the guys think they might be able to research this a bit and give you a better answer. I'll forward your question to the Pure Java team.

SPK-vertelney: One of the biggest problems we have is there is no primary window component today, so we must exist with the native primary window. Of course, this won't be true for JOS, but it can be fairly confusing in Windows or Mac.

acohen: It sounds like Java GUI developers will have the choice of some "Java-style" GUI that runs the same on all platforms, or of somehow detecting the runtime platform, and choosing whether or not to imitate that platform's GUI at runtime. Is that right?

SPK-yopu: That's right, acohen.

MDR-lisa: So, what are the elements of a "Java-style GUI" that developers should be aware of? What ideas should they stick to in designing applications and applets?

SPK-vertelney: One of the things we're doing is developing cross-platform interface guidelines. The issues get fairly hairy. For example, on Macs, the menu bar is at the top and not associated with a window, while in Swing the menu bar is associated with a window—so designing for Mac/Java compatability will require skill.

avalc: I'm interested in creating an "always on top" window (Windows95). Is it possible to do this now (using JDKTM 1.1), or will it be possible (using JFC)?

SPK-vertelney: avalc, I don't believe you'll be able to do that. For example, any time a user pressed alt+esc the top window would be cycled.

SPK-yopu: Here are a few of our design goals:

Accommodation
The Java Look and Feel is being designed to accommodate internationalization, localization, and accessibility issues. For example, localizing an English interface to German requires 20 to 30% more space for the text labels. Accessibility can mean supporting a mouseless interface, which might use a focus highlight around human interface elements.
Scalability
The Java Look and Feel is being designed to scale in terms of typefaces, colors, and display resolution.
Extensibility
The Java Look and Feel will evolve over time to accommodate technology changes and improvements. The "visual vocabulary" will potentially extend to different kinds of devices, input, and environments.

SPK-vertelney: Some of you may be aware that PJava is a subset of the JDK. We're trying to build some UI identity between the personal and webtop/desktop worlds. There are many elements that scale: chimes, typeface, some behaviors etc.

jslukows: What about the ability to use status bar messaging?

SPK-yopu: One of our goals is evolution, rather than revolution. We want to avoid creating a completely unfamiliar interaction style, or one that will be dated in a short period of time. For instance, we are working to eliminate some of the 3D "noise" that you can see in current interfaces, without losing the affordances provided by physical metaphors.

SPK-vertelney: Each internal window can send messages to its parent, thus a primary window can send messages to the status bar. Are any of you writing apps/services for NCs?

jslukows: Where will the cross-platform interface guidelines reside on the Web? Is there currently a site with information?

SPK-vertelney: In the not too distant future, the JavaSoft Human Interface Group will have a web site hosted by JDC where you'll be able to get more info, see samples, post questions etc. What kind of services or apps are you all writing? Productivity, enterprise, entertainment, general Web?

JEstrada: How is the team taking the Microsoft approach (AFC)? How does JFC addresses the "advantages" that Microsoft advertises (direct access, efficiency)?

jslukows: How will these future guidelines be affected by 100% Pure JavaTM initiative? or vice versa?

I am writing general web applications, and I am new to Java programming (~2 months). As a chemical engineer, I have been using VBasic to solve engineering problems. Now, I am looking at new ways Java can fill the gap.

JEstrada: I'm writing telephony drivers for the public safety market. JFC will probably fit excellently in our near future. (To answer the question about what we're doing out here).

SPK-vertelney: Actually, we're really trying to bring out the advantages of working in a networked environment rather than adapting from a disk-based world. Again, incorporating security and having knowledge of the network are all advantages for us.

avalc: About the floating windows problem: Is it possible to create one, using the Windows API? Why is this not going to be supported in Java API? Do you consider this functionality too Windows-specific, or are there other issues involved here?

SPK-vertelney: If you're writing a Java app on a Windows platform, you can use floating windows. On the other hand, if you are designing a xplatform app, today, your app will live as a second-class citizen in the Windows environment and a first-class citizen in a Java environment.

MDR-lisa: At this point, I'd like to thank our guests for doing this chat, as well as our participants for logging in. Remember, we'll have a Code Clinic Thursday, from noon to 2:00 p.m. PDT, and we'll take coding questions then.

SPK-vertelney: Thanks for your interest and questions.

MDR-lisa: Bye all, and thanks for coming.


[ This page was updated: 12-Jan-2000 ]
Products & APIs | Developer Connection | Docs & Training | Online Support
Community Discussion | Industry News | Solutions Marketplace | Case Studies
Glossary - Applets - Tutorial - Employment - Business & Licensing - Java Store - Java in the Real World
FAQ | Feedback | Map | A-Z Index
For more information on Java technology
and other software from Sun Microsystems, call:
(800) 786-7638
Outside the U.S. and Canada, dial your country's AT&T Direct Access Number first.
Sun Microsystems, Inc.
Copyright © 1995-2000 Sun Microsystems, Inc.
All Rights Reserved. Terms of Use. Privacy Policy.