Moderator (MDR): MDR-andreaw
Guest Speaker (SPK): SPK-name
MDR-andreaw: Hello and welcome to the discussion forum. My name is Andrea Warren, from the JDC team and I am your moderator. Today we will be talking with Adam Abramski, a JavaTM Foundation Classes (JFC) evangelist about JFCs and how they will change the way that
you program. Let's begin with the basics. Adam, what are JFCs?
SPK-adama: Java Foundation Classes are a comprehensive set of GUI components and services that dramatically simplify the development and deployment of
commercial quality desktop and Internet/intranet applications.
jff: I guess the biggest question on everyone's mind is: "When?" A lot of us were excited by what we saw at JavaOneSM and we really need these new
components. So, when can we get our dirty little hands on them?
SPK-adama: JFC will be available by the end of next week for public review. It will include the API specification, documentation, and sample code. You will be able to download it from java.sun.com.
uptonmj: Do you think the lack of support for the "New Event Model" by Netscape 4.0 has anything to do with the JFC? In other words, could Netscape be waiting for the next JFC release?
JavaSoftTM indicates that JFC will be released in July. Is this still true and about which day?
SPK-adama: The lack of support of the new event model by Netscape by no means had anything to do with JFC. It had to do with Netscape needing to add as much functionality as they could, while getting their product out to market. Netscape will be adding the rest of the JDK 1.1 stuff that was missed in the fall time frame.
jimheintz: How does JFC relate to lightweight components?
SPK-adama: JFC has lightweight components as part of it. JFC also contains other technologies like Java 2D, Drag and Drop, and some other application services.
vsi: Can you explain the concept of `Swing' for the JFC, and how one goes about
writing a set of Swing components or an interface? Is Swing only applicable to the JFC?
SPK-adama: Swing components are lightweight components, and the Swing set is the set of these lightweight components that are a part of JFC. To clarify, JFC is a superset of AWT and contains the technologies just mentioned in the previous question. So think of JFC as an umbrella term.
jbrasch: When can we expect the Java licensee's (including Microsoft) to support this core functionality?
SPK-adama: JFC and some of the services are already a part of JDK 1.1. There is the delegation event model, lightweight UI framework, data transfer, and the native components as part of JDK 1.1. The JFC package, available by the end of next week are a set of the lightweight components that support JDK 1.1. Microsoft has already stated that they are supporting JDK 1.1 in Internet Explorer 4.0, so they are already supporting JFC. As for their support of the next release of JDK, I'm not from Microsoft so I can't comment on what their plans are, but I would expect if there is enough demand from ISVs and customers that they will also
support the next release of JDK in there products (i.e. IE).
uptonmj: Have any third-party IDE developers had a look at the JFC yet? I'm just wondering if these IDE developers are waiting to release until they package their stuff with the new JFC Beans.
SPK-adama: Yes, we have several IDE vendors looking at and providing feedback to the JFC engineering team.
AaronWalsh: I have a quick question regarding version numbers for the JFC. Will JFC have it's own version number, or will it always be associated with the JDK version? (Java is at version 1.1.2, although it can be said that JFC is at version 1.0 since it's brand new).
SPK-adama: JFC will always be associated with JDK and it's versioning will be a part of core Java.
vsi: The AWT in JDK 1.0.2 is very sluggish for painting and redrawing. How do the JFC components compare?
SPK-adama: The new lightweight components are no longer making native calls to the OS so the performance of them should be much better than with the native AWT components.
jimheintz: How large is JFC? (How many classes and packages?)
SPK-adama: It's hard to say how many classes and packages there are, but you'll be able to find out by the end of next week.
bretsh: Will the JFC include many more components as well as the new look and feel, such as tables, combo boxs, etc.?
SPK-adama: The JFC will include many more components then what is currently in AWT. The components that are already in AWT are being written as JFC lightweight components, so you'll have your choice and the ability to mix and match them if you decide. It will also include the pluggable look and feel.
kdlitwak: Can you distingush between JFC, which I understand is an all or nothing program structure, and enhancements to the AWT that I can just use like any other component? That is, can I take advantage of improvements to the AWT without having to throw my current code away because it's not built around the JFC?
SPK-adama: Yes, you'll be able to use a combination of AWT and JFC components in your applications.
tkrein: Is there any documentation available for the new compenents?
SPK-adama: Currently, there is a white paper, an FAQ, and some slides available at
http://java.sun.com/products/jfc
There will be more available by the end of next week.
mj-perry: Also related to double buffering, will the ScrollPane class be implemented as a lightweight component? Currently it uses a native peer, so I found it impossible to subclass properly for implementing double buffering. I wanted to scroll a large bitmap around but the flicker was too massive to bear.
SPK-adama: All AWT components will be written as JFC lightweight components.
srr: How does the Swing set ensure compatible behavior between different operating systems. Does it still require the programmer to write conditional code and the need to test the code on differnet operating systems? For example, operation of the tab key on Win32 vs. Mac., or exit vs. the quit menu option etc.
SPK-adama: Since JFC and the lightweight components are no longer using the peer method or native method to draw the component; the look and feel as well as the UI, should appear the same across all platforms.
AaronWalsh: How will Java's internal conversion of current AWT components to JFC lightweight components affect our own code? Will we have to update our code, or will the AWT classes and methods be transparently treated as JFC automatically?
SPK-adama: Let's take an example, in AWT you have a class called "button," but in JFC you'll have "jbutton." So in order to use the new lightweight components, the developer will need to change the code accordingly. This was done to ensure compatibility between existing applications and new or improved applications.
vsi: What are some of the widgets (tabs, trees, combo boxes, etc.) that will be included in the JFC, that aren't part of the AWT?
SPK-adama: Here's a representative list of out current plan. New lightweight components:
ListView
TreeView
TableView
TabbedFolder
Toolbar
StatusBar
ProgressBar
Slider
PaneSplitter
Message Box
Spinner
Chooser (color, font, file)
As well as lightweight components for the existing AWT components.
mj-perry: For the upcoming source/API release, what was the default look and feel chosen to be? Win95, Motif, unique?
SPK-adama: The components will take a look and feel that is determined by the programmer. We're working with the different platform vendors on the look and feel of their respective platforms.
munozf: My current project has extreme need for Multiple Document Interface (MDI). Currently, this is being offered by the IFC. Will this be part of the JFC? When should I expect to see it? What current alternative would you suggest? IFC is too much a step away from the current Java programming that I know. Thanks in advance...
SPK-adama: We are working with the Netscape engineers on adding some of the application services that are currently in the IFC. These application services will be in the next release of the JDK, but I don't have the specific application services that will be added just yet.
sbk: Why should I use JFC over AFC or IFC?
SPK-adama: JFC will be part of core Java and therefore will be on every Java Platform. These other *FCs will not, and consequently all the classes that make them up will have to be carried along with the application. All the JFC components are 100% Pure JavaTM, fully customizable and truly cross-platform.
MDR-andreaw: We are running out of time, so Adam can only take a few more questions before we close the forum.
Dobber: When is the Swing set due out in beta?
SPK-adama: There will be a general release to the public for comment by the end of next week. The beta release will be a developer release that is scheduled for the September time frame. Again, this release will be compatible with JDK 1.1.
jff: What's included in next week's release? All the components you mentioned (tree, list, pane, etc.)? How about drag and drop?
SPK-adama: Yes, all the components or most of them will be in next week's release. The API for drag and drop is on the java.sun.com/products/javabeans page.
achen70: I'm interested in the 2D, 3D APIs. Are they going to be in next week's release? If not when?
SPK-adama: The Java 2D API specification is also on the java.sun.com/products under Java 2D.
jbrasch: How hard will it be to extend the JFC widgets and also support different looks and feels?
SPK-adama: It will be very easy to extend the JFC components/widgets and to support the look and feel given to the application.
MDR-andreaw: Thank you to everyone who joined the discussion today, especially our guest, Adam Abramski. Look for more information about the JFC on the web site: java.sun.com/products/jfc
A transcript of this chat will be available tomorrow on the JDC web site.