Có ai có bất kỳ đề xuất nào về bộ chọn ngày tốt (thả xuống lịch hoặc các thành phần lịch nhỏ) để sử dụng trong ứng dụng Java Swing - hoặc là đậu hoặc mã nguồn không? Họ cần phải đủ mạnh mẽ cho các ứng dụng thương mại.Điều khiển ngày tháng và lịch Java
12
A
Trả lời
8
JCalendar miễn phí và cung cấp đậu và mã nguồn. Nó là khá cấu hình và trong các ứng dụng của tôi cho đến nay phục vụ mục đích của nó khá tốt.
7
Hãy thử swinglabs. Có rất nhiều hơn datepickers ... thưởng thức.
1
Tôi đồng ý với Dan Dimerman và có thể giới thiệu thư viện swingX. Chúng tôi cũng sử dụng JXDatePicker
trong một ứng dụng thương mại. Và với JXMonthView
bạn có khả năng viết biến thể của riêng bạn của bộ chọn ngày.
1
bạn có thể sử dụng một trong này chỉ cần thay đổi chính trên nhu cầu của bạn ^^
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class DatePicker {
int month = java.util.Calendar.getInstance().get(java.util.Calendar.MONTH);
int year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);;
JLabel l = new JLabel("", JLabel.CENTER);
String day = "";
JDialog d;
JButton[] button = new JButton[49];
public DatePicker(JFrame parent) {
d = new JDialog();
d.setModal(true);
String[] header = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" };
JPanel p1 = new JPanel(new GridLayout(7, 7));
p1.setPreferredSize(new Dimension(430, 120));
for (int x = 0; x < button.length; x++) {
final int selection = x;
button[x] = new JButton();
button[x].setFocusPainted(false);
button[x].setBackground(Color.white);
if (x > 6)
button[x].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
day = button[selection].getActionCommand();
d.dispose();
}
});
if (x < 7) {
button[x].setText(header[x]);
button[x].setForeground(Color.red);
}
p1.add(button[x]);
}
JPanel p2 = new JPanel(new GridLayout(1, 3));
JButton previous = new JButton("<< Previous");
previous.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
month--;
displayDate();
}
});
p2.add(previous);
p2.add(l);
JButton next = new JButton("Next >>");
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
month++;
displayDate();
}
});
p2.add(next);
d.add(p1, BorderLayout.CENTER);
d.add(p2, BorderLayout.SOUTH);
d.pack();
d.setLocationRelativeTo(parent);
displayDate();
d.setVisible(true);
}
public void displayDate() {
for (int x = 7; x < button.length; x++)
button[x].setText("");
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
"MMMM yyyy");
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(year, month, 1);
int dayOfWeek = cal.get(java.util.Calendar.DAY_OF_WEEK);
int daysInMonth = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH);
for (int x = 6 + dayOfWeek, day = 1; day <= daysInMonth; x++, day++)
button[x].setText("" + day);
l.setText(sdf.format(cal.getTime()));
d.setTitle("Date Picker");
}
public String setPickedDate() {
if (day.equals(""))
return day;
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
"dd-MM-yyyy");
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(year, month, Integer.parseInt(day));
return sdf.format(cal.getTime());
}
}
class Picker {
public static void main(String[] args) {
JLabel label = new JLabel("Selected Date:");
final JTextField text = new JTextField(20);
JButton b = new JButton("popup");
JPanel p = new JPanel();
p.add(label);
p.add(text);
p.add(b);
final JFrame f = new JFrame();
f.getContentPane().add(p);
f.pack();
f.setVisible(true);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
text.setText(new DatePicker(f).setPickedDate());
}
});
}
}
Các vấn đề liên quan
- 1. Điều khiển lịch biểu cho ASP.Net MVC
- 2. Mảng ngày tháng trong Java
- 3. Ngày tháng :: Calc - định dạng ngày và tháng
- 4. Cách thanh lịch để nhận số tháng giữa hai ngày?
- 5. Ngày và số ngày tối đa của Lịch Richfaces
- 6. So sánh ngày và tháng
- 7. Tại sao đặt Lịch Java (int năm, int tháng, ngày int) không trả lại ngày chính xác?
- 8. Thành phần lịch Primefaces chỉ hiển thị tháng và năm
- 9. Bao nhiêu ngày trong Java với Lịch
- 10. Trình ghi ngày tháng JQuery ẩn ngày từ một lịch trên một trang
- 11. Thêm một ngày vào Lịch trong Android không thành công vào ngày 31 tháng
- 12. Ruby thêm một tháng theo lịch
- 13. DateTime.Now.ToShortDateString(); thay thế tháng và ngày
- 14. Tính tuổi theo tháng và ngày
- 15. Jquery datepicker - chỉ ngày và tháng
- 16. Tạo ngày giờ trong Rails bằng tháng, ngày và năm
- 17. Đặt hàng theo ngày giảm dần - tháng, ngày và năm
- 18. Làm cách nào để có được Ngày đã chọn từ điều khiển lịch?
- 19. Lấy ngày tháng đầu tiên và ngày cuối cùng của tháng trước đó trong C#
- 20. đọc csv với ngày tháng và số
- 21. định dạng ngày tháng jquery ui định dạng ngày tháng
- 22. Định dạng một ngày lịch
- 23. Lấy số ngày trong tháng hiện tại trong Java
- 24. Tính toán sự khác biệt về ngày tháng trong Java
- 25. So sánh các chuỗi ngày tháng trong Java
- 26. Ngày tháng trong Hibernate
- 27. Làm thế nào để bạn trừ Ngày tháng trong Java?
- 28. Java dạng ngày chuyển đổi - nhận sai tháng
- 29. java nhận ngày đầu tiên và ngày cuối cùng của tháng đã cho và năm nhất định
- 30. Chuyển đổi chuỗi thành Ngày tháng trong java