⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendarapplet.java

📁 此源码为机械工业出版社出版的《Java语言程序设计》第三版所配套的书中所有源代码。
💻 JAVA
字号:
// CalendarApplet.java: Display a locale-sensitive calendar
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import java.text.DateFormat;

public class CalendarApplet extends JApplet
  implements ItemListener, ActionListener
{
  // Create a CalendarPanel for showing calendars
  private CalendarPanel calendarPanel = new CalendarPanel();

  // Combo box for selecting available locales
  private JComboBox jcboLocale = new JComboBox();

  // Declare locales to store available locales
  private Locale locales[] = Calendar.getAvailableLocales();

  // Buttons Prior and Next to displaying prior and next month
  private JButton jbtPrior = new JButton("Prior");
  private JButton jbtNext = new JButton("Next");

  // Initialize the applet
  public void init()
  {
    // Load native fonts. Uncomment the following two statements,
    // if native fonts such as Chinese fonts are not used
    //GraphicsEnvironment ge =
      //GraphicsEnvironment.getLocalGraphicsEnvironment();
    //ge.getAllFonts();

    // Panel jpLocale to hold the combo box for selecting locales
    JPanel jpLocale = new JPanel();
    jpLocale.setBorder(new TitledBorder("Choose a locale"));
    jpLocale.setLayout(new FlowLayout());
    jpLocale.add(jcboLocale);

    // Initialize the combo box to add locale names
    for (int i=0; i<locales.length; i++)
      jcboLocale.addItem(locales[i].getDisplayName());

    // Panel jpButtons to hold buttons
    JPanel jpButtons = new JPanel();
    jpButtons.setLayout(new FlowLayout());
    jpButtons.add(jbtPrior);
    jpButtons.add(jbtNext);

    // Panel jpCalendar to hold calendarPanel and buttons
    JPanel jpCalendar = new JPanel();
    jpCalendar.setLayout(new BorderLayout());
    jpCalendar.add(calendarPanel, BorderLayout.CENTER);
    jpCalendar.add(jpButtons, BorderLayout.SOUTH);

    // Place jpCalendar and jpLocale to the applet
    this.getContentPane().add(jpCalendar, BorderLayout.CENTER);
    this.getContentPane().add(jpLocale, BorderLayout.SOUTH);

    // Register listeners
    jcboLocale.addItemListener(this);
    jbtPrior.addActionListener(this);
    jbtNext.addActionListener(this);
  }

  // Main method
  public static void main(String[] args)
  {
    // Create a frame
    JFrame frame = new JFrame("Calendar Demo");

    // Create an instance of the applet
    CalendarApplet applet = new CalendarApplet();

    // Add the applet instance to the frame
    frame.getContentPane().add(applet, BorderLayout.CENTER);

    // Invoke init() and start()
    applet.init();
    applet.start();

    // Display the frame
    frame.pack();
    // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }

  // Handle locale selection
  public void itemStateChanged(ItemEvent e)
  {
    // Set a new locale
    calendarPanel.setLocale(locales[jcboLocale.getSelectedIndex()]);
  }

  // Handle the Prior and Next buttons
  public void actionPerformed(ActionEvent e)
  {
    int currentMonth = calendarPanel.getMonth();

    if (e.getSource() == jbtPrior)
    {
      if (currentMonth==1)
      {
        calendarPanel.setMonth(12);
        calendarPanel.setYear(calendarPanel.getYear()-1);
      }
      else
        calendarPanel.setMonth(currentMonth-1);
    }
    else if (e.getSource() == jbtNext)
    {
      if (currentMonth==12)
      {
        calendarPanel.setMonth(1);
        calendarPanel.setYear(calendarPanel.getYear()+1);
      }
      else
        calendarPanel.setMonth(currentMonth+1);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -