是否有人对Java Swing应用程序中使用的日期选择器(下拉日历或小日历组件)有任何建议 - bean或源代码?他们需要足够强大的商业应用。Java日期和日历控件
12
A
回答
8
JCalendar是免费的,并提供豆类和源代码。它是相当可配置的,并且在我的应用程序中,迄今为止它的目的非常好。
7
尝试swinglabs。有很多比日期选择器...享受。
1
我同意Dan Dimerman,可以推荐swingX库。我们在商业应用中也使用JXDatePicker
。与JXMonthView
你有可能编写你自己的日期选择器的变体。
1
你可以使用这个只是改变了主您的需求^^
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());
}
});
}
}
相关问题
- 1. 日历控件显示日期事件
- 2. 如何序列化Java日历和Java日期为Javascript日期
- 3. Java日历日期检查
- 4. Java中的日期/日历
- 5. Java日期/日历奇怪
- 6. 日历控件
- 7. 使用日期和日历
- 8. Java 8日期API与日历/日期/日期格式
- 9. Primefaces日历组件和日期转换
- 10. 如何在java中使用公历日历和日期开始日期
- 11. 从日历控件获取时间和日期
- 12. 带日期和时间的日历控件?
- 13. PHP日期选择器控制和事件日历需要
- 14. 日历控制日期未知(ASP.Net)
- 15. iPAD日历月份,日期和星期的控制
- 16. Java日历日期逻辑错误
- 17. Java日历返回不同的日期
- 18. Java:如何使用日期/日历
- 19. 两个日历日期不一致的Java日历天
- 20. Asp.net日历控件
- 21. 日历控件“Expedia.com”
- 22. Asp日历控件
- 23. 我的日历的日历日期为
- 24. 获取最后一个Java日期/日历的最后日期
- 25. 如何使用日期选择器和wpcontrol日历设置日历的日期
- 26. 具有自动对焦和最短日期的双日期日历日历
- 27. Java - 将日期时间转换为公历日历时间(日期)
- 28. PHP日历IF日期与日期
- 29. glyphicon日历开始和结束日期
- 30. zabuto日历最小和最大日期