  Java
 


   ,       Java        Java    .       Java    ,  AWT, Swing, SWT/JFace  JavaFX.





  Java



 



 ,2020



ISBN978-5-0050-2742-9

     Ridero












 ,   ,      GUI Graphical User Interface.

      .








   ,  ,   ,      , , ,    .

 Java     ,        ,           .

     Java   AWT  JDK1.0.

  AWT    Java 2D   .








 AWT          GUI-  , ,  ,  , ,  ,   , ,  ,    ,   Drag-and-Drop,    UI-,    ,  , , ,  .

 AWT  ,       java.awt.peer,        ,  AWT-   ,     ,      java.awt.peer.

  AWT GUI-   ,   .

   GUI-  AWT,         (Look and Feel) GUI-     Swing.

 Swing   AWT  ,   AWT,  ,   .

  Swing   .

 ,  Swing   AWT   GUI-    ,  ,  radio button,  ,  ,  ,    GUI-, ,   HTML-.

Ѡ  Swing      Look and Feel,    ,   ,    GUI-.

  Swing   MVC (Model-View-Controller)   Event Dispatch Thread (EDT).

 SWT (Standard Widget Toolkit)    AWT/Swing,      JRE/JDK.

 SWT       Eclipse       AWT Swing     GUI-  Look and Feel,       ,   .

  SWT   ,  SWT-    Java- GUI-   .

  ,    - ,  SWT  Java-.

  SWT          .

  GUI-  SWT   GUI-  ,   , , , ,  ,  ,  ,  ,  ,  ,  ,   ,  ,  Web-, ,    SWT-,  AWT-,  OpenGL-, ,   Drag and Drop, 2D-,  Win32OLE.

 JFace   SWT    SWT   MVC (Model-View-Controller),   MVC GUI-  , , ,    ,        GUI-,   ,        GUI-,   .

 Java 3D        3D ,   3D-.

 Java 3D    JRE/JDK   .

 Java 3D  ,   ,     3D-   .

Java3D-     ,       .

,  Java 3D     OpenGL DirectX.

       ,      ,        .

 ,       GUI-  XML.

 JavaFX     ,   GUI-    ,       2D/3D ,     .

, 20072010,  1.1, 1.21.3 JavaFX :

   JavaFX Script  UI-.

 JavaFX SDK,    .

    NetBeans IDE Eclipse.

  Adobe Photoshop Adobe Illustrator,     JavaFX Script,     SVG  JavaFX Script.

 JavaFX  2.0 2011    JavaFX 1..

 JavaFX 2.    JavaFX Script,       JavaFX API   JavaFX-   Java.

        JavaFX 2.    FXML.

 ,  JavaFX 2.     ,     ,   HTML- ,    Web-,   GUI-  CSS3, 2D ,   ,   Swing.

   JavaFX  2. :

 JavaFX SDK,   JavaFX Packager tool ,   JavaFX-, Ant-   JavaFX-,  JavaFX API .

  JavaFX Runtime    JavaFX- JavaFX-.

  JavaFX 2.    NetBeans IDE7.

 JavaFX-.

 JavaFX Scene Builder 1.    GUI- GUI-   FXML.

   JavaFX     Java 8,    .

 ,  JavaFX 8    CSS API  ,   SWT,   Printing API, 3D ,   SubSceneAPI.

  JavaFX 8   JavaFX Scene Builder 2.    GUI- GUI-   FXML,      JavaFX 8,   JavaFX Scene Builder Kit    Java ,    GUI- .

    JavaFX       (Graphical User Interface (GUI)), 2D 3D    ,   ,  -,   - , Mashup-,   Web-  ,        Web-,    ,  ,   .




AWT







,    Java-    AWT (Abstract Window Toolkit).

     JDK1.0.

  AWT    Java 2D API,      .

   Java  -,    Java-   -.

   Java       ,          .

  AWT   ,   AWT-   - peer ,     .

 ,    AWT     java.awt.peer    .

 , AWT-  .

 AWT-,   ,    java.awt.Component.













      java.awt.MenuComponent.

 AWT   ,     ( java.awt.Container)   蠖 ,   java.awt.LayoutManager.

          java.awt. Window,       java.awt.Frame      java.awt. Dialog,    .

AWT-   java.awt.Panel ,     ,   .

   java. applet. Applet,   java.awt.Panel,       .

   Java SE    ,   Java   ,       JVM   .

   ,     .

 ,     ,   ,    JVM.

    ,    <APPLET>  <OBJECT> <EMBED>,   HTML-.

       java. applet. Applet,    Applet     .

     Java Plug-in  JRE.

   Java SE   Java-,     JVM,         ,    main.

  Java SE 7 2013  Java-  Web Start    .

      ,         .

 , Java 9   ,    .




Java Web Start







Java Web Start (JWS)  ,   Java Network Launching Protocol (JNLP),     ,  .

   ,            .

        .

 Java     .

     ,    ,      .

    Java Web Start.

Java Web Start    ,           -.

Web-    ,   . JNLP,      ,   .








    ,    .

Ѡ Java Web Start   ,   -.








   , Java Web Start     .

   ,        ,        ,    .

 ,      ,      .

,   Java Web Start,   Java Network Launching Protocol & API (JNLP).

Java Web Start      JNLP.

 JNLP ,  ,  JNLP,     ,   .

Ѡ   Java Web Start   .

 Java Web Start     ,   Java, Standard Edition.

 ,      -,     ,  Windows, Linux macOS.

Java Web Start     Java Standard Edition.

 ,       , , Java SE9.

       ,  .

Java Web Start     -.

      ,        .

       ,          .

Java Web Start     Java.

           .

         .

,   Java Web Start,  .

 ,        .

Java Web Start    Java Platform, Standard Edition (JDK) Java Runtime Environment (JRE)     Java.

 ,  ,   Java Web Start,     .

    Java Web Start,       .

 ,  Java Web Start     :

-,  .

     .

Java Cache Viewer.

 ,   , Java Web Start   -     ,  ,    .

  -  HTML-,   ,    -,    ,  JNLP-.

-      MIME  ,    Java Web Start.

   Java Web Start   JNLP  .

  Java Web Start  ,   ,     JNLP.

  Java Web Start           .

     Java    ,     .

     Java Web Start Cache Viewer.

    c   JWS         cache,          ,  Java Cache Viewer.








 Java Cache Viewer   ,  JNLP- ,      ,       .

 Java Cache Viewer        ,  JAR-.

  Java Cache Viewer     Java,     .

JNLP-   XML-,    JWS- javaws    .

  . jnlp,   JRE,  Java- javaws,    JNLP-    javaws.

   NetBeans    Java Web Start   ,          .








 Java  ?

        ,   Flash, Silverlight Java,   ,   Java   ,    .

     Java-  Java Web Start      .

 Java     ,      .

ʠ 2015     ,        Java .

, Oracle   Java   JDK9.

  Java Web Start       .




AWT







 AWT.

  ,  AWT   ,     ,  AWT-.

,   AWT-,   java.awt.AWTEvent.

      -,   java.awt.event.ActionListener,    .

  java.awt  java.awt. event  AWT  :








 java.awt.color    .

 java.awt. datatransfer        .

 java.awt. dnd   Drag-and-Drop.

 java.awt.font   .

 java.awt.geom   .

 java.awt.im      .

 java.awt.image      .

 java.awt.print   .

  AWT-  peer-,    AWT  - (thread safe),    ,      .

       AWT-.

 ,  ,    AWT        Java- ,    ,     .

         AWT,    ,   AWT,   Windows   Windows-,   Macintosh   Mac-.

,     Java-,  Swing, SWT, Java3D, JavaFX,  AWT    .

       ,       ,   AWT .

 ,  AWT    Java ME    ,    .

  AWT.








 Component   AWT.

Component   ,      .

 Component       ,   ,   .

Container   AWT,    ,   ,  ,  ..

    .

     .

 Panel     Container.

   ,    .

 ,     .

 Window    .    .

Frame    Window   ,    .

 ,   AWT ,  ,    Frame    .

    Frame,      .








        .

     .

       .








  WindowAdapter          .

 windowClosing      .

Ƞ   ,    exit .

 ,      .

  Frame  ,          , , ,  ..

,    Frame ,         .








   .

 Frame        LayoutManager.

    .

      .

 setLayout  Container   LayoutManager,     .

   AWT ꠖ ,   LayoutManager,  FlowLayout, BorderLayout, CardLayout, GridLayout, GridBagLayout.

 FlowLayout     ,         setLayout.








        , ,    ,    setPreferredSize.

 setSize  .

      ,  ,   5     .








    .

       FlowLayout. LEFT  FlowLayout. RIGHT   FlowLayout.








 BorderLayout      Frame Dialog,         setLayout.








     .








     BorderLayout NORTH, SOUTH, EAST, WEST, CENTER

NORTH SOUTH      .

EAST WEST      .

   .

   ,  ,   .








,    .

 GridLayout          .








    ,  .

     ,      .

     ,      .

      .








     .

     setLayout     add.

 CardLayout   ,     ,     .








        .








 GridBagLayout    , ,     .








   ,  ,   GridBagConstraints.

GridBagConstraints      ,     ,   ,    ,    .

       GridBagLayout,      setLayout.








   GridBagConstraints,      .

gridx gridy     .

gridwidth gridheight    ,   .

fill    ,  ,   .

ipady ipadx  .

 ,      pack  ,       .

      ,   .








        , ,   setBounds.

     Frame.








   Frame,  AWT       Dialog.

   ,    Frame,     Dialog,     ,      .

       ,            .

     , ,     ࠖ  BorderLayout.

  ,     ,      setVisible (false) ,   .

  ,     ,      setVisible (true)  ,   .

Ƞ,  add      ,   .




 AWT







        .








   ,         ,      ,  - .

,    ,     ,    .

   ,       .

 ,     ,      ,       .

,  ,      ,         ,    .

      .

 AWT         .

 Java 1.0     .

      Event.

        action  handleEvent ,      .

 ,     ,   action handleEvent,    Component.

Ƞ       false.

      Java1.1.

Java 1.1  ,     ,    .

      ,  .

Ƞ ,          ,   ,             .

   Java 1.1      java.awt. event.

      AWTEvent     .

 AWTEvent    Event   .

      EventListener,   ,      .

   ,      .

     .

   EventListener   ,       .

     -.

 ,  ,       EventListener,   ,      .

  ,      .

,   ,     ,   .

   .

    Observer.

 ,        GUI  .

,   ,  ,   .

 ,          .

      ,      ,  .

 , ,     ,       ,   .

    JavaBeans,     Java  .

   ,      .

       ;         .

      ,     ,   ,           .

     ,     .

 Java 1.1 .

    ,      ,  ,     .

,       .

 ,   handleEvent    ,      ,   EventQueue.

 Java 1.1    ,      ,     AWTEvent.








,   ,  .

     ,   ,    .

  ,           ,    add listener ,   .

Ƞ   .








      ,    ,    .

      ,   .

   ,  actionPerformed    ,    - ,    .

    actionPerformed    action   ,  ,     Component,    ,      ,    .

  ,    ,    ,    .








        .

,  MouseListener        :  ,  , ,     .

 ,  ,  ,   ,   MouseListener          .

     ;           .

ʠ,    .

    ,       .

Ƞ      ,      ,   ,     MouseAdapter.

Ƞ     ,    ,     mouseClicked.

 , .

  AWTEvents,  - .

  AWTEvent    .

,     MouseEvent.

Ƞ       AWTEvent.

        add listener ,   .

   add listener     AWTEvent,    .

,      ,    addMouseListener .

      ,   ,     .

    ,       .

, MouseListener  ,     .

      .

,  MouseEvent   MouseAdapter.

     ,     , . .     - .

  ,       .

,       MouseListener     MouseAdapter     ,  .

 EventQueue     Java1.1.








     ;     .

,   ,      ,  Toolkit.getSystemEventQueue,      ,  peekEvent    ,  postEvent.

EventQueue - ,    ,   - peer,     AWT  ,   .

    , ..         dispatchEvent (AWTEvent event),       AWTEvent,   AWT .

 ,  EventQueue      .

 dispatchEvent  EventQueue ,          dispatchEvent  .

 dispatchEvent      java.awt.Component.

    dispatchEvent  processEvent (AWTEvent e),       process <event type> Event,     .

   process <event type> Event     <event type> Listener,    add <event type> Listener,    ,  .

  EventQueue     Java,       java.awt.Component.

       java.awt. EventDispatchThread,    ,     .

     ,  .

 pumpEvents  EventDispatchThread      dispatchEvent  EventQueue.

      .




 AWT







      .








   .

    ,       .

  .

 ,               .

Ƞ.

 ,  ,      .

 ,    AWT  ,   Component.

 Button  ,  ,       .








   , AWT   ActionEvent  ,   processEvent .

 processEvent      ,   ,    processActionEvent.

     ,     ,   .

    -     ,     ActionListener        ,   addActionListener .

 heckbox     (true)    (false).








    , ,   .

Ƞ   ,  .

    ,    .

 ,    ,    setState,      .

   ItemListener, ActionListener.

    , ,   itemStateChanged.

   ,    .








   ,    ,      .

    ,         ,      .

 CheckboxGroup   getSelectedCheckbox,     .

  Choice      .








     .

 Choice   getSelectedItem,      .

Label    ,       .








     ,    .

      ,      .

 List     .








    ,        ,    .

     Choice.

 List   ,   ,  Choice.

 List, TextArea ScrollPane    .








,       ,      Scrollbar.

        .

         .

       .

      ,      AdjustmentListener,     Scrollbar.

        Component    .

         paint  .

         .

      .

Ƞ     .

  ,         .

    ,     .








      adjustValueChanged  AdjustmentListener.

          .

  paint    ,    .

 ,    ,    .

  TextArea AWT    .








    ,   .

     ,   ,    ,     , ,  .

   TextArea       .

 TextField      .








     ,     .

      KeyListener.

    ActionEvent,     enter.

  ,      enter,       .

       .

 setEchoCharacter  ,     ,  .

     .

,        .








      ,   .

  ,  java.awt    ࠖ MenuBar, Menu, MenuItem CheckboxMenuItem.

      AWT,      Component.

 ,     MenuComponent,      Component.

  MenuBar   .








MenuBar  Frame   setMenuBar.

,      Frame.

MenuBar      .

 Menu   .

     add.

    .

 MenuItem  ,    .

      addMenuItem.

         addSeparator.

 CheckboxMenuItem   MenuItem ,     .

       .

  .

       .

 setActionCommand      ,     .

   ,      .

    .

   .

      .

  PopupMenu   ,        .








   PopupMenu   show,     ,    ,     .

      .

Ƞ   ,   .




 Canvas







 Canvas    ,     -,       ,    , ,  .








  Canvas  ,  Canvas,   paint,   .

         ,     Graphics.

 Graphics       AWT.

   ,  .

-,   .

   ,    .

       , ,     ࠖ  ,    .

-,  Graphics       ,  .

   Graphics    ,     .

 Graphics         update paint .

   Graphics,      ,     .

  Java       .

   ,   ;      Graphics,       Graphics,  ,  ,   ,   ,     .

 Graphics   .








   .

   .

   ,      Toolkit,     .

   drawImage   ,    .

   this   ,     .

,   ,   ,    .

 Component   ImageObserver,    this       drawImage.

 Toolkit    ,         ,    ,   .

 ,  Java,    ,    Toolkit.

    Toolkit,      ,   ,   ,     .




Java2D







   ,  AWT    Java 2D API,      .

Java 2D API        .

    ,       .

   ,     paint  update    Graphics.

Java 2D API   Graphics2D,    Graphics,        Java 2DAPI.








   Java 2D API ,    Graphics,    ,  Graphics2D.

Ƞ Graphics2D   :

   ,   Shape.








                .

Graphics2D    , , ,   .

 Graphics2D     ,      .

  , , , , , .








        GeneralPath.

      Stroke.








      Paint.

Java 2D API      ,       .








       ,       drawString  Graphics,    setFont  Graphics.

        ,    Java 2DAPI.

Java 2D API        RenderingHints, ,   .

 TextLayout      .

 ,     ,          .

    .

          ,  ,   .

  , Java 2D API       GIF, PNG, JPEG   ,  Java2D.

  2D Java  .

  2D- Java .

  2D Java     GIF, PNG  JPEG.

     ࠖ   Image ,       .

Ƞ BufferedImage,    Image,       , ,     .

Ƞ      .

 BufferedImage       ,    .

  BufferedImage   Image,        Graphics Graphics2D,    Image.

      Image I/OAPI,     GIF, PNG, JPEG,BMP.








 Image I/OAPI     BufferedImage   .

         Toolkit,     .

      Graphics  Graphics2D.








    paint  update ,   Graphics2D    createGraphics,  ,    .

,    ,      ,    Graphics2D,      .

     , , ,   ,     Graphics  Graphics2D.








 








AWT         java.awt.image.

   ,        Toolkit.








  BufferedImage        .

     .

   -   ,         .

Java        .

 ,     getWidth getHeight ,  Java   .

       -1.

  ,      .

    ,      .

     MediaTracker,     .








       waitForID,    ,   -,  .

       .

       ImageObserver,    Component.

ImageObserver  ,     ,   .

ImageObserver    : ImageUpdate().

     (  )  ,         ,     .

  Java   ImageObserver        .

    MediaTracker,        .

          .








  ,   .

    ,    .

    .

     .

   PixelGrabber,    grabPixels    ,     PixelGrabber.

    ,      .








        MemoryImageSource  Toolkit.

Ƞ    .

 ,     .








   ,    ImageProducer,       Image.

       ,    ImageConsumer.

       ,        .

AWT      .

    Image    .

   AWT   .

      ,     Image.

    Image  draw,   AWT   .

 ,     ,    createImage  Component   ,   ImageProducer ImageConsumer,     paint .

Java      ImageFilter   .








AWT   ,         .

     ImageFilter,      ,    ,   .

ImageFilter   ImageConsumer,     ,    .

  ,   .

     ImageProducer.

       FilteredImageSource.

           ,   getSource,  頖   .

       createImage.

     ,   MediaTracker.

        drawImage.

       ImageFilter.

        ,      RGBImageFilter,    ImageFilter.

    ,      (,  ) .








 ColorFilter   RGBImageFilter    ,  ,      .

   ,  .

 canFilterIndexColorModel,  RGBImageFilter,   true,  ,       ,       .

 Java      .

  Java   ,   Java      .

     Java,         ,     .

    , ,       32- .

 ,     ,      .

   ,  Java,       .

     ,    RGB - ,       .

    8- ,   256.

     ,    ,  .

     ,     .

  .

 ,  ColorFilter     filterRGB,    ,   RGBImageFilter.

 filterRGB   :  x y    32- ()  .

 ,   ,   ,rgb.

   RGB  ,     24 32-  .

Ƞ   ,  rgb.

      r, g b.

 ,         ,   .

  ,    0.

      32-     filterRGB.

 ,  -   .

    0xff000000,   -     .

  ,         ,








Java      BufferedImageOp.

 filter  BufferedImageOp   BufferedImage   ( )    ,    BufferedImage ( ).

,   BufferedImage   Image,     .

Java 2D API     BufferedImageOp.

AffineTransformOp   .








ColorConvertOp  -    .

ConvolveOp  ,  ,     ,      .

LookupOp    .

RescaleOp   .

     RescaleOp,   .








       BufferedImage  ,     BufferedImage.

     ,   filter   RescaleOp.




JavaBeans POJO


  IntelliJ IDEA   Java .













     ,   New GUI Form.

  .








    Java    XML ,    IntelliJ IDEA GUI Designer.








 IntelliJ IDEA GUI Designer      (GUI) ,    Swing.

        ,      ,   JFrame.

     GUI Designer,   , .

   ,        .








             ,     .

Ӡ   ,   .

       (properties),     .

Ӡ      getXxx () /setXxx () /isXxx ()  .

    IDE  ,    .

,     ,  Java   JavaBean.

       .

 ,      jar-    MANIFEST. MF  Java-Bean: True.

  AWT Swing   JavaBeans.

 Sun Microsystems  JavaBeans     ,   ,    IDE.

  蠖    JavaBeans.

  ,   JavaBeans, ,       .

Ƞ    JavaBeans   ,     .

   .

     bean,       ,  .

     ,   ,   JavaBeans.

  :

     ,   public.

         .

      get, set   (   ),      .

        bean.

         .

   .

    ,    bean     .

     equals, hashCode toString.

   NetBeans     JavaBeans   New  .








   JavaBeans Java SE API    java.beans.

 ,   ,     ,  JavaBeans    ,   ,    .

  JavaBeans   addPropertyChangeListener removePropertyChangeListener   ,    ,    PropertyChangeEvent   .

   JavaBeans     ,   .

  ,      , add <Event> Listener remove <Event> Listener.

 ,      Plain Old Java Object.

Plain Old Java Object   Java,        - .

POJO    Java,    ,             get/set.

 JavaBeans  Plain Old Java Object      listener  .

  Plain Old Java Object       .












   ,  Java       .

       ,      .

 ,            ?

   , JavaBeans   ,   ,       .








,     ,  .

         ,       ,     ,      ,  .

 ,    ,      .

    .

,  Java    Frame  Windows,         Solaris,   Java    Frame  ,   Windows.

  ,    ,    java.io.Serializable,   java.io.Externalizable.

   ,    .ser.








 ObjectInputStream ObjectOutputStream   ,      .

  ,       .

 -       Serializable  Externalizable,      .

      Component, String, Date, Vector Hashtable.

 ,   ,    Image, Thread, Socket InputStream.

       NotSerializableException.

Java Object Serialization API      Serializable  .

   ,  .

API    ,   transient  static.

Transient ()   .

           .

       .

  , ,       ,       , ,  ,        .

     .

    :

  ,   Serializable.

   Java   ,   transient  static.

 Serializable   ;    ,    ,    .

   Serializable ,      Java (JVM),       .

,   Serializable,       .

   ,     . ser,    .

   Serializable  ,     .

 ,   transient  static, .

  transient,   ,    ,  ,   .

     ,  -    ,  , ObjectOutputStream   ,   .

 , ,    ,    ,   ,   .

    .

-,          ,    .

-,     ObjectOutputStream.reset,    ,     ,   ,        .

   ,   ,      writeObject readObject     .








,       ,       .

 writeObject    .

 readObject   ,     writeObject.

      ,   Externalizable, ,      .

   Externalizable     : readExternal writeExternal.

,   Externalizable,     .

 XMLEncoder    XML-.








      ,         .

       .

   XMLEncoder,      XML-.




 Swing


  Swing     AWT     AWT          AWT      .













        Swing     Java.

 AWT  ,     Swing  .

 AWT    (,     )   .

    Jave Runtime Environment     , ,    AWT.

 ,    AWT,      .

    AWT ,     Windows,   Mac     ,   .

   ,     JRE   AWT ,  ,        .

  AWT     ,   .








        ,         .

,  Java  ,       .

     .

    Swing     .

-, Swing  JFrame, JWindow, JDialog JApplet   AWT-.

Ƞ         .

  Swing ;   .

      JFrame, JWindow, JDialog  JApplet.

Ƞ       .

 AWT             .

             .

,       Java  .

 ,    Java  -,  AWT    .

,     .

  ,        ,    Java.

 ,      GUI    ,        .

      Swing,    Java,      .

    ,   Java.

      AWT  Component  Container ,     Java,    .

    ,    ,      ,  .

    ,   paint update,    ,    , ,   .

  AWT           Canvas.

     Component  Container.

    ,   .

  Toolkit     LightweightPeer,        .

LightweightPeer      , ,  ,  ,    .

  ,    ,   ,      ,        .

    ,  ,   ..     .

 setBackground  ,    Component, ,         peer- ,  ,   .

   ,     setBackground,    ,    paint.

    ,         ,    paint      paint .

    -.      ,    .

     peer-,        ,   getPreferredSize,    ,  FlowLayout (),   ,    .

    ,      .       .

 ,   AWT,   Swing Java-  ,         , ,   .,     .

 Swing     JFC (Java Foundation Classes),    ,    Swing-,     ,      ,    ,  ,     .

    Swing    Java-.








  Swing-     JComponent  javax. swing.








  Swing-   ,  ,       ,   JApplet,   , JDialog, JFrame JWindow.

    Swing  :

.

      (pluggable look and feel).

               .

      .

 Swing-   Java Beans.

    Swing-        , ,  .

.

  AWT-          ,    .

 Swing    ,   ,       ,     Java 2D API,    .

     ,        ,      ,      ,     ,      .

  Swing       , ..      ,    ,         .

  Swing  -.

 Swing-     Event Dispatch Thread (EDT).

     .

      .

  ,  Swing-  HTML-.

Ѡ  HTML,    ,      HTML.

   ,      HTML,    <HTML>.

   Swing-.

  MVC (Model-View-Controller)       .

 Swing-     (Model),      ,   .








 MVC ( 䠖 )  -   ,   .

   ,     .

   .

       .

 MVC   Swing    ,  ,  .

 ,  Swing,        (delegateUI).








          (UIManager),       (Look and Feel).

   Swing    look-and-feel.

 ,    MVC  Swing   (delegation) ,      (delegate)     xxxModel.

  Swing       model   -,  getModel,     model.

     Swing     .

Swing  JComponent    ui  - ComponentUI  javax.swing.plaf,       .

-   paint update,    .

       ComponentUI.

   javax.swing.plaf  .

     UI (User Interface), , ButtonUI.

      Swing ,      getUI.

          .

        .

    ,  ,     ,        xxxModel.

     setModel (xxxModel).

       Swing   IntelliJ IDEA,         New GUI Form.








   OK.








    Java   XML  . form,    ,     GUI .








     JPanel.








   GUI ,   field name    .

     .

     Java         Generate Form main().








      .








,    main,       JFrame.

Ƞ     .

       .








   Java      .

      -    XML   .

    File | Settings | Editor | GUI Designer,   Java source code.








       ,   .








   ,        Create Listener.








        ,    .








    Swing ,       JavaBean,        Data Binding Wizard.








  .

    Plain Old Java Object .








Ƞ  ,  Plain  GUI .

 GUI     ,    .








     Client Properties.








Ƞ  .

    ,      .

Ѡ      +  .

Ƞ .




JButton JLabel







     JButton.








     , ,  ,  ,  ,       ,    .








    .

 JLabel    ,  ,  , .








   ,       .

 JLabel        .

    ,     .

Ѡ  HTML    ,   .




JColorChooser







 JColorChooser       .








  JColorChooser  .

   showDialog,       .

      ,    .

  showDialog    .

      .

     showDialog   ,      .




JCheckBox, JRadioButton, JToogleButton







 JCheckBox    .








      on ࠫoff .

 setMnemonic       .

  ,     AbstractButton.

 JRadioButton    .








        .

      ,    true.

      ,     ButtonGroup.

  ,   .

 JToggleButton   ,    JCheckBox JRadioButton.








 JToggleButton      蠖  .

 JToggleButton    ,     ,  .

  ,    isSelected.




JComboBox







 JComboBox       .








     ,      .

       JComboBox,      addItem (Object) insertItemAt (Object, int).

      ,  ,         JComboBox (Object [])  JComboBox (Vector).

  ,   ,    getSelectedIndex  getSelectedItem.

 ,    ,   .








      setEditable (true).








  ,      ,    .

        ,   ,   getSelectedItem.

       .

  ,   ActionListener   ActionEvent,    .

Ƞ     ,   ActionEvent   ,   .

 ,  ActionListener   .

      ,     ,     .

     ,   ListCellRenderer.








    ,    .

Ѡ            ,    .

 getListCellRendererComponent  ListCellRenderer         value,    index.

         paint.

  Swing  ListCellRenderer   BasicComboBoxRenderer DefaultListCellRenderer,   JLabel.

 ,       JLabel,       .

     ListCellRenderer,      .




JScrollPane


 JScrollPane  ,            .













   ,         ,     .

     ,      .    setVerticalScrollBarPolicy setHorizontalScrollBarPolicy.

              : ,  ,   .

    setColumnHeaderView, setRowHeaderView setCorner .

          JScrollPane    setViewportView.

        JViewport,    JScrollPane.








     getViewport  JScrollPane,       add.




JList


 JList           .













      JList,   .

       JList (Object []),       JList (Vector)     JList (ListModel).

  ,      JComboBox.

     ,     ,     JScrollPane.








   setVisibleRowCount     .

  8.

       .

 setLayoutOrientation    .

 VERTICAL      .

 HORIZONTAL_WRAP    ,      .

 VERTICAL_WRAP    ,      .

    setLayoutOrientation,   setVisibleRowCount (-1)         .

 setFixedCellHeight setFixedCellWidth       .

,    JComboBox,  JList    , .

       ,    <Ctrl>.

   setSelectionMode  SINGLE_SELECTION,       .

,     JComboBox,   JList,     ListCellRenderer,    ,   .

        .








    ,      addListSelectionListener.

       valueChanged.

 getValueIsAdjusting  true,      .

        ,  valueChanged  -,   getValueIsAdjusting  false.

    ,     ,   valueChanged       .




 Model-View-Controller







,      Swing ,    model-view-controller (MVC).








MVC      .

   ,   ,  ,    ,   .

   ,           .

,  ,    ,   ,        -.

     .

         ,    .

  MVC       ,  .

   , 䠖   .

    .

,    ,     .

 ,     .








   ,   ,  .

 ,      ,     .

,    ?

   .

Ѡ ,    ,          .

       .








,      .

,  ,              .

,  ,      .

       ,       .

  ,    .

  ,      ,   .

   MVC.

  SimpleStringModel,       .

       getString setString.








  setString          ,   ,    .

      .

   ,  .








   setModel,     .

  ,    setText ,    .

   ,     ,      .








   ,   MVC.

     ,   ,  MVC.

,    ,      .

    set      .








Swing  MVC  Controller View .

     .








    View  ontroller  .

       ࠖ   ,   .

    ,      .

      ,     .

 ,    MVC Swing  .








   ListModel,    .

-,   ,       .

-,     ,   MVC.

Ƞ    ,   size/get,   ,   , ,   ,      size/get     ,   .

     ,     .








 ,  ,   , ,   .

    ListModel,    MVC,    ,     ,    .

 ,   ,   .

     ,       .

,        .








  ,     ,    .

     ,      ,     .

 ,    .

      .








    ,          .

     size/get     .

 ,    ,     .

   ,  Swing        .

, JList    ListCellRenderer,    ,   ,      .

      getListCellRendererComponent.








 ,    ,      ListCellRenderer.

   .

-,  ,     ,   .

Ƞ ,      String.

   ellRenderer  ,  ,    .

    ,    , ,  .








,    ,      .

 , ,     ,         Student, .

  ,    ,    ListModel,    ListModel    .

      java.util.List.








Ƞ       size/get.

 ,    ,    ,    .

  ,      ListCellRenderer,  ,       -.








    ,  , 堖  .




JTextField JPasswordField







 JTextField     .








 setFont    .

 setText    ,  getText .

         replaceSelection.

 setHorizontalAlignment       .

     setEditable (false).

 setCaretColor    .

     getCaretPosition,    setCaretPosition.

  ,     ,  moveCaretPosition.

      setSelectedTextColor,      setSelectionColor.

       ,    ,     ,     .

       JTextField,    focusGained focusLost,    DocumentListener   insertUpdate.

 JPasswordField         .

 JPasswordField   JTextField,   ,         ,  .

       setEchoChar.

   ,    getText        getPassword,     char, .




JFormattedTextField







 JFormattedTextField   JTextField     .








       Number Date  .

 getValue    Object,         .

      JFormattedTextField   AbstractFormatter.

 Swing    ࠖ  DateFormatter, NumberFormatter MaskFormatter.

    JFormattedTextField   .








     DateFormatter, NumberFormatter MaskFormatter   ,  , .

           ,  .




JTextArea


 JTextArea       .













    setFont.

     getText.

   setText,     append,     insert.

  JTextArea     .

     JScrollPane.

      蠖   ,     JScrollPane.

       ,   .

          setWrapStyleWord (true) setLineWrap (true).




JEditorPane


 JEditorPane      .













       ,  HTML Rich Text Format (RTF).

  HTML,  JEditorPane   HTML-,   Html 3.2  css   Javascript.

      JEditorPane    JFrame.








 setContentType  JEditorPane      .

    getEditorKitForContentType,   setEditorKit.

 JEditorPane   EditorKit      .

     HTML .

        JEditorPane.

     setText.

    setPage    URL .

           HTML   .








    Plain  View,      ,   HTML-.

   ,    setContentType       .








      .

    ,  HTML  .

 ,  inline css .

  JEditorPane    ,    setEditable (false).

  HTML-,  JEditorPane   HTML-   .

   click ,    HyperlinkEvent,    addHyperlinkListener.

     .








  ,     ,   ()   ().

  ,      HTML .

Ƞ  ,      HTMLDocument.

  ,   URL       .

 ,     HTML ,   , ,   ,  ,   ,    <base>     .








     HTML ,      .




JTextPane


 JTextPane    JEditorPane.













 JTextPane  JEditorPane    StyledDocument.

 DefaultStyledDocument       addStyle.

       setCharacterAttributes.

       setParagraphAttributes.

       insertIcon.

      insertComponent.




ImageIcon


  Swing,   ,   ,    젖   .













ꠖ  ,    Icon.

Swing    Icon  ImageIcon,      GIF, JPEG PNG.

 ,   Swing  ,  AWT  Image,    ImageIcon,      .

    ,   ,       .




JDialog


 JDialog   Dialog  AWT   .













      .

,       ,   .

      AWT  Window, Dialog  Frame.

     ,   ,  .

     ,  ,      <Alt> + <F4>,    setDefaultCloseOperation.

       setModalityType setTitle.

      ,       setResizable.

   , Swing    : JFrame, JDialog JWindow.








   ,   ,   GUI     ,       .

   GUI     .

    ,      ,     ,    .

       contentPane,       .

        .

     ,   .

         getContentPane.

      ,   JComponent  BorderLayout   .

    JPanel     ,   setContentPane   .

         add,       .

      ,     .








      ,    root pane.

          .

   layered pane          Z.

  glass pane      ,     ,        .

     .








         .

   createRootPane,    ,       Escape.

     getKeyStroke  KeyStroke     ESCAPE.




  .


   .

   ,     (https://www.litres.ru/timur-mashnin/graficheskie-interfeysy-polzovatelya-java/)  .

      Visa, MasterCard, Maestro,    ,   ,     ,  PayPal, WebMoney, ., QIWI ,       .


