Hat jemand Empfehlungen für gute Datumsauswahl (Drop-down-Kalender oder kleine Kalenderkomponenten) für die Verwendung in einer Java Swing-Anwendung - entweder Beans oder Quellcode? Sie müssen robust genug für kommerzielle Anwendungen sein.Java-Datums- und -Kalender-Steuerelemente
12
A
Antwort
8
JCalendar ist kostenlos und bietet Beans und Quellcode. Es ist durchaus konfigurierbar und hat in meinen Anwendungen bisher seinen Zweck recht gut erfüllt.
7
Versuchen Sie swinglabs. Es gibt viel mehr als nur Datepicker ... viel Spaß.
1
Ich stimme Dan Dimerman zu und kann die swingX-Bibliothek empfehlen. Wir verwenden JXDatePicker
auch in einer kommerziellen Anwendung. Und mit JXMonthView
haben Sie die Möglichkeit, Ihre eigene Variante der Datumsauswahl zu schreiben.
1
können Sie diese benutzen nur die auf Ihre Bedürfnisse Haupt ändern ^^
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());
}
});
}
}
Verwandte Themen
- 1. SQL Server UND UND ODER UND UND
- 2. ASP.NET - Was ist der beste Weg, um zu verhindern, dass jQuery meine ASPX-Dateien überladen?
- 3. Unterschied zwischen - und - oder 'und' oder "und"
- 4. SubSonic "Oder" und "UND"
- 5. "und" und Tail-Rekursion
- 6. SOX und Ein- und Ausblenden
- 7. QOpenGLWidget und glReadPixels und Tiefenpuffer
- 8. Flasche und Skalierung und Gleichzeitigkeit
- 9. Realm: kombinieren "oder" und "und"
- 10. ArrayList und String [] UND Objekt []
- 11. Python wenn Bedingung und "und"
- 12. Schienen und Markdown und Editor
- 13. Jack und Jill und destinationDir
- 14. Excel Multiple IF und UND
- 15. Spring und JSF und JPA
- 16. Kopf- und Fußzeile und Freemarker
- 17. Android und onSaveInstance und Restore
- 18. Hibernate und Transaktionen und Tabellensperren
- 19. „Und“ und „Oder“ auf NSPredicates
- 20. reagieren und setState und Autocomplete
- 21. Codierung und Decodierung mit PHP und JavaScript und Datenattribute Validierungs
- 22. Leistung und Sortierung und eindeutige eindeutige zwischen mysql und php
- 23. Batch-Datei umbenennen und verschieben und Variablen und Dinge
- 24. Mit 'und' und 'oder' Logik mit Dropdown-Menüs und MixItUp
- 25. bash: Umleitung (und hängen) stdout und stderr Datei und Terminal und die richtige Exit-Status
- 26. Warum scheinen NSString und NSLog% C und% lc (und% S und% ls) unterschiedlich zu behandeln?
- 27. Breite und Länge, x und y und Unterschiede beim Plotten: geosphere und ggmap
- 28. User Controls und JavaScript und Masterseiten
- 29. HTTP GET und POST Semantik und Einschränkungen
- 30. WMODE und Flash Video - Stabilität und Leistung