Два примера, иллюстрирующие использование JFrame и JPanel Cl

Этот совет Java differantiates между функциональным и JFrame JPanel классы с помощью двух примерах. Объект JFrame является физическое окно, которое вы будете работать с In The Swing API. Разработчики могут знать, что есть необходимость добавить к JPanel contentpane JFrame прежде чем добавлять компоненты в JFrame.


import java.awt.*;

import javax.swing.*;



public class CustomPanel extends JPanel {

   public final static int CIRCLE = 1, SQUARE = 2;

   private int shape;



   public void paintComponentGraphics g )

   {

      super.paintComponent);



      if shape == CIRCLE )

         g.fillOval50106060 );

      else if shape == SQUARE )

         g.fillRect50106060 );

   }



   public void drawint )

   {

      shape = s;

      repaint();

   }

}



// Using a customized Panel object.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



public class CustomPanelTest extends JFrame {

   private JPanel buttonPanel;

   private CustomPanel myPanel;

   private JButton circle, square;



   public CustomPanelTest()

   {

      super"CustomPanel Test" );



      myPanel = new CustomPanel();   // instantiate canvas

      myPanel.setBackgroundColor.green );



      square = new JButton"Square" );

      square.addActionListener(

         new ActionListener() {

            public void actionPerformedActionEvent e )

            {

               myPanel.drawCustomPanel.SQUARE );

            }

         }

      );



      circle = new JButton"Circle" );

      circle.addActionListener(

         new ActionListener() {

            public void actionPerformedActionEvent e )

            {

               myPanel.drawCustomPanel.CIRCLE );

            }

         }

      );



      buttonPanel = new JPanel();

      buttonPanel.setLayoutnew GridLayout1) );

      buttonPanel.addcircle );

      buttonPanel.addsquare );



      Container c = getContentPane();

      c.addmyPanel, BorderLayout.CENTER );  

      c.addbuttonPanel, BorderLayout.SOUTH );



      setSize300150 );

      show();

   }



   public static void mainString args[] )

   {

      CustomPanelTest app = new CustomPanelTest();



      app.addWindowListener(

         new WindowAdapter() {

            public void windowClosingWindowEvent e )

            {

               System.exit);

            }

         }

      );

   }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>