多语言展示
当前在线:1920今日阅读:58今日分享:42

Swing日期选择滑块

1.主程序:package edu.test.swing;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.EventQueue;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.text.DateFormatSymbols;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Dictionary;import java.util.GregorianCalendar;import java.util.Hashtable;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.UIManager;import javax.swing.border.EmptyBorder;import javax.swing.border.EtchedBorder;import javax.swing.border.TitledBorder;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class DateSilder extends JFrame { /** * */ private static final long serialVersionUID = -5326757798867881120L; private JPanel contentPane; private JSlider yearSlider; private JSlider monthSlider; private JSlider daySlider; private JLabel dateLabel; private Calendar calendar = new GregorianCalendar(); //日期类 private ChangeListener cl = new DateListener(); //变化侦听器 private SimpleDateFormat dateFormat = new SimpleDateFormat('yyyy\u5E74MM\u6708dd\u65E5'); /** * Launch the application. */ public static void main(String[] args) { try { UIManager.setLookAndFeel('com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel'); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { DateSilder frame = new DateSilder(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DateSilder() { addWindowListener(new WindowAdapter() { @Override public void windowActivated(WindowEvent e) { do_this_windowActivated(e); } }); setTitle('Swing日期选定'); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 600, 500); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new GridLayout(5, 1, 5, 5)); JPanel panel1 = new JPanel(); panel1.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), 'Choose the date:', TitledBorder.LEADING, TitledBorder.TOP, null, new Color(59, 59, 59))); contentPane.add(panel1); dateLabel = new JLabel(''); dateLabel.setFont(new Font('微软雅黑', Font.PLAIN, 20)); panel1.add(dateLabel); JPanel panel2 = new JPanel(); panel2.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), 'Year', TitledBorder.LEADING, TitledBorder.TOP, null, null)); contentPane.add(panel2); panel2.setLayout(new BorderLayout(0, 0)); yearSlider = new JSlider(); yearSlider.setSnapToTicks(true); yearSlider.setPaintTicks(true); yearSlider.setPaintLabels(true); yearSlider.setFont(new Font('微软雅黑', Font.PLAIN, 14)); panel2.add(yearSlider); JPanel panel3 = new JPanel(); panel3.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), 'month', TitledBorder.LEADING, TitledBorder.TOP, null, null)); contentPane.add(panel3); panel3.setLayout(new BorderLayout(0, 0)); monthSlider = new JSlider(); monthSlider.setSnapToTicks(true); monthSlider.setPaintTicks(true); monthSlider.setPaintLabels(true); monthSlider.setFont(new Font('微软雅黑', Font.PLAIN, 14)); panel3.add(monthSlider); JPanel panel4 = new JPanel(); panel4.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), 'day', TitledBorder.LEADING, TitledBorder.TOP, null, null)); contentPane.add(panel4); panel4.setLayout(new BorderLayout(0, 0)); daySlider = new JSlider(); daySlider.setSnapToTicks(true); daySlider.setPaintTicks(true); daySlider.setPaintLabels(true); daySlider.setFont(new Font('微软雅黑', Font.PLAIN, 14)); panel4.add(daySlider); JPanel panel5 = new JPanel(); panel5.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), '确定打印', TitledBorder.LEADING, TitledBorder.TOP, null, null)); contentPane.add(panel5); panel5.setLayout(new BorderLayout(0, 0)); JButton okbutton = new JButton('控制台打印日期'); okbutton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println(dateFormat.format(calendar.getTime()));}}); panel5.add(okbutton); } protected void do_this_windowActivated(WindowEvent e) { yearSlider.setMaximum(2020); yearSlider.setMinimum(2000); yearSlider.setMajorTickSpacing(5); yearSlider.setMinorTickSpacing(1); yearSlider.setValue(calendar.get(Calendar.YEAR)); Dictionary yearLabel = new Hashtable(); yearLabel.put(2000, new JLabel('2000年')); yearLabel.put(2005, new JLabel('2005年')); yearLabel.put(2010, new JLabel('2010年')); yearLabel.put(2015, new JLabel('2015年')); yearLabel.put(2020, new JLabel('2020年')); yearSlider.setLabelTable(yearLabel); yearSlider.addChangeListener(cl); monthSlider.setMaximum(12); monthSlider.setMinimum(1); monthSlider.setMajorTickSpacing(1); monthSlider.setValue(calendar.get(Calendar.MONTH) + 1); String[] months = (new DateFormatSymbols()).getShortMonths(); Dictionary monthLabel = new Hashtable(12); for (int i = 0; i < 12; i++) { monthLabel.put(i + 1, new JLabel(months[i])); } monthSlider.setLabelTable(monthLabel); monthSlider.addChangeListener(cl); daySlider.setMaximum(calendar.getMaximum(Calendar.DAY_OF_MONTH)); daySlider.setMinimum(1); daySlider.setMajorTickSpacing(5); daySlider.setMinorTickSpacing(1); daySlider.setValue(calendar.get(Calendar.DATE)); daySlider.addChangeListener(cl); dateLabel.setText(dateFormat.format(new Date())); //获取当前时间 }2.测试示例:3.技术要点:4..打印输出:5.JSlider 是一个让用户以图形的方式在有界区域内通过滑块来选择值的空间。protected void do_this_windowActivated(WindowEvent e) { yearSlider.setMaximum(2020); yearSlider.setMinimum(2000); yearSlider.setMajorTickSpacing(5); yearSlider.setMinorTickSpacing(1); yearSlider.setValue(calendar.get(Calendar.YEAR)); Dictionary yearLabel = new Hashtable(); yearLabel.put(2000, new JLabel('2000年')); yearLabel.put(2005, new JLabel('2005年')); yearLabel.put(2010, new JLabel('2010年')); yearLabel.put(2015, new JLabel('2015年')); yearLabel.put(2020, new JLabel('2020年')); yearSlider.setLabelTable(yearLabel); yearSlider.addChangeListener(cl); monthSlider.setMaximum(12); monthSlider.setMinimum(1); monthSlider.setMajorTickSpacing(1); monthSlider.setValue(calendar.get(Calendar.MONTH) + 1); String[] months = (new DateFormatSymbols()).getShortMonths(); Dictionary monthLabel = new Hashtable(12); for (int i = 0; i < 12; i++) { monthLabel.put(i + 1, new JLabel(months[i])); } monthSlider.setLabelTable(monthLabel); monthSlider.addChangeListener(cl); daySlider.setMaximum(calendar.getMaximum(Calendar.DAY_OF_MONTH)); daySlider.setMinimum(1); daySlider.setMajorTickSpacing(5); daySlider.setMinorTickSpacing(1); daySlider.setValue(calendar.get(Calendar.DATE)); daySlider.addChangeListener(cl); dateLabel.setText(dateFormat.format(new Date())); //获取当前时间 }6.
推荐信息