Why is Swing preferred over AWT?
Which Swing component could be used for playing a video on it?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.Sign up to join this community
AWT is older than Swing and supports only a limited set of components. Otherwise you have to write your own such as tables/data grids for example (typically, you will have to write your own video player, good luck !). Swing is more "modern" as Sun engineers learned from their AWT mistakes and made something better, albeit more complex. Both Swing and AWT are event-based so if you know event-driven programming you will be at home. The learning curve is a bit steeper with Swing because of the larger number of available classes, though by practicing a bit with tutorials you should quickly be fine.
As to how you can play video on Java: https://stackoverflow.com/questions/4569490/how-to-play-video-in-java-using-swing
AWT components are essentially a thin layer on top of native OS GUI controls. To draw for example a checkbox, AWT components were calling underlying OS. Such approach caused two problems:
Because of this connection between AWT component and underlying OS control AWT controls were called "heavyweight". In contrast Swing offers, so called "lightweight" controls. They are purely Java, have no dependency on underlying OS and basically "draw themselves" using Java2D primitives (pixels, lines, brushes and so on). This approach has several advantages but what is most important -- it fixes AWT outstanding problems mentioned above.
As for Swing component for video playing, I don't think there is one, at least among standard Swing components. You may want to google for one, as it probably is already written. You can also look at JMF API, but I think you'd have to code a few bits yourself before you can display video.
1) AWT is prehistorical FrameWork and is strong based on Windows OS
2) Swing is GUI FrameWork based on AWT, all JComponent inherits or implemetns part of usefull methods from ATW Components, sure if exist,
3) Swing implements a few of new JComponents, for example JTable, best from comparison table here
4) for video and multimedia are there lots of Custom API, (never use that) but I think that based on AWT Canvas
5) since as of the JDK 6 update 12 and JDK7 build 19 releases, promiss that you can mixing AWT and Swing Components, but don't suggest to do that, Components are painter in the Container correctly, but still there exist same difference betweens heavyweight and lightweight components as before, and you have to calculate with that