Java自學-圖形介面 日期控制元件
阿新 • • 發佈:2020-08-24
兩種Swing下的日期控制元件 DatePicker 和JXDatePicker
swing沒有自帶的日期控制元件,需要第三方的類
步驟 1 : DatePicker
本例使用 Datepicker.jar 包,有一個缺點,不能設定時間,只能在建立控制元件的時候傳入指定日期。
需要設定日期,請使用JXDatePicker
package gui; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import java.util.Locale; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import com.eltima.components.ui.DatePicker; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); f.setLayout(null); final DatePicker datepick; datepick = getDatePicker(); f.add(datepick); JButton b = new JButton("獲取時間"); b.setBounds(137, 183, 100, 30); f.add(b); b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(f, "獲取控制元件中的日期:" + datepick.getValue()); System.out.println(datepick.getValue()); } }); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } private static DatePicker getDatePicker() { final DatePicker datepick; // 格式 String DefaultFormat = "yyyy-MM-dd HH:mm:ss"; // 當前時間 Date date = new Date(); // 字型 Font font = new Font("Times New Roman", Font.BOLD, 14); Dimension dimension = new Dimension(177, 24); int[] hilightDays = { 1, 3, 5, 7 }; int[] disabledDays = { 4, 6, 5, 9 }; datepick = new DatePicker(date, DefaultFormat, font, dimension); datepick.setLocation(137, 83); datepick.setBounds(137, 83, 177, 24); // 設定一個月份中需要高亮顯示的日子 datepick.setHightlightdays(hilightDays, Color.red); // 設定一個月份中不需要的日子,呈灰色顯示 datepick.setDisableddays(disabledDays); // 設定國家 datepick.setLocale(Locale.CHINA); // 設定時鐘面板可見 datepick.setTimePanleVisible(true); return datepick; } }
步驟 2 : JXDatePicker
本例使用 swingx-core-1.6.2.jar 包,介面比較簡約,可以設定日期
package gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import org.jdesktop.swingx.JXDatePicker; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); f.setLayout(null); Date date = new Date(); final JXDatePicker datepick = new JXDatePicker(); // 設定 date日期 datepick.setDate(date); datepick.setBounds(137, 83, 177, 24); f.add(datepick); JButton b = new JButton("獲取時間"); b.setBounds(137, 183, 100, 30); f.add(b); b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 獲取 日期 Date d = datepick.getDate(); JOptionPane.showMessageDialog(f, "獲取控制元件中的日期 :" + d); } }); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }