Ich versuche, eine Kalenderanwendung in Java zu erstellen und den Kalenderanzeigeteil erfolgreich abgeschlossen zu haben. Jetzt muss ich Feiertagsnachrichten unter den Kalendereinträgen anzeigen.Wie zeige ich Urlaub in Java?
Wenn der Kalender beispielsweise Aprilmonat anzeigt, dann "1. April - Aprilscherztag". wird zeigen.
Kann jemand mir sagen, wie man das macht? Hier ist mein Code:
import java.time.Month;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class SwingCalendar extends JFrame {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
private JLabel msglabel;
DefaultTableModel model;
Calendar cal = new GregorianCalendar();
JLabel label;
SwingCalendar() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Swing Calandar");
this.setSize(300,200);
this.setLayout(new BorderLayout());
this.setVisible(true);
label = new JLabel();
label.setHorizontalAlignment(SwingConstants.CENTER);
JButton b1 = new JButton("Back");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cal.add(Calendar.MONTH, -1);
updateMonth();
}
});
JButton b2 = new JButton("Next");
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cal.add(Calendar.MONTH, +1);
updateMonth();
}
});
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(b1,BorderLayout.WEST);
panel.add(label,BorderLayout.CENTER);
panel.add(b2,BorderLayout.EAST);
String [] columns = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
model = new DefaultTableModel(null,columns);
JTable table = new JTable(model);
JScrollPane pane = new JScrollPane(table);
this.add(panel,BorderLayout.NORTH);
this.add(pane,BorderLayout.CENTER);
this.updateMonth();
}
void updateMonth() {
cal.set(Calendar.DAY_OF_MONTH, 1);
String month = cal.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.US);
int year = cal.get(Calendar.YEAR);
label.setText(month + " " + year);
int startDay = cal.get(Calendar.DAY_OF_WEEK);
int numberOfDays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int weeks = cal.getActualMaximum(Calendar.WEEK_OF_MONTH);
model.setRowCount(0);
model.setRowCount(weeks);
int i = startDay-1;
for(int day=1;day<=numberOfDays;day++){
model.setValueAt(day, i/7 , i%7);
i = i + 1;
}
}
public static void main(String[] arguments) {
JFrame.setDefaultLookAndFeelDecorated(true);
SwingCalendar sc = new SwingCalendar();
}
private void showJPanelDemo(){
headerLabel.setText("Container in action: JPanel");
msglabel = new JLabel("Welcome to TutorialsPoint SWING Tutorial.", JLabel.CENTER);
JPanel panel = new JPanel();
panel.setBackground(Color.magenta);
panel.setLayout(new FlowLayout());
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
}
Ich denke * Das Medium ist die Massage *. –
Ich würde mir vorstellen, dass Sie ein oder mehrere "Ereignisse" -Modelle benötigen, die Informationen über das Ereignis (wie den Tag/Datum, was immer Sie benötigen) und die Beschreibung – MadProgrammer
Was hat das mit Eclipse zu tun? – Learner