Making a Java calender
I have big problems making a java calender work as I want. The calender must work in a program. I use "Core Java Fundamentals" and I have program simple java for a half year now. I'm using the program "eclipse" I hope some one can help me. here is the code (I'm a Norwegian so and we have 3 more letters then the English Alfabet, so don't mind the ? ? ?:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/*Vi skal pr痸e ?lage et program som viser et vindu med et
* tekstomr耫e i center. I s痳 skal to tekstfelt
* et for m耼ed og et for 聄 samt en knapp som heter Lag
* Ideen er n聄 vi skriver m耼ed og 聄 og velger Lag
* s?skal programmet generer en oversikt i tekstomr耫et
* slik som vi er vant til fra en vanlig kalender
*/
public class datotabell {
public static void main(String[] args) {
//lager et grafisk vindu som viser det grensesnittet
//Lager et objekt som er ("is-a") et vindu mm
MittVindu mv=new MittVindu();
}
}
class MittVindu /*is-a*/ extends JFrame implements ActionListener{
public MittVindu(){
this.setSize(400,300);
this.setLocation(20,20);
//this.setBounds(x, y, width, height)oundDenne kan ogs?brukes
this.lagMeny();
this.lagCenter();
this.lagSor();
this.setVisible(true);
}
private void lagMeny(){
//this er tilgjengelig
JMenuBar jmb=new JMenuBar();//1
JMenu jm=new JMenu("Fil");//2
jmb.add(jm);//3
this.setJMenuBar(jmb);//4
// 1 m?komme f痳 4, 2 og 1 m?komme f痳 3
}
private void lagCenter(){//kun this tilgjengelig
this.getContentPane().add(jta,BorderLayout.CENTER);
}
MittPanel mp;
private void lagSor(){
MittPanel mp=new MittPanel();
this.getContentPane().add(mp,BorderLayout.SOUTH);
//hvordan koble handlingen trykk knappen "lag" til noe i MittVindu?
JButton knappenfraPanelet=mp.getKnapp();
knappenfraPanelet.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
String year=mp.getYear();
String month=mp.getMonth();
String s=lagOversikt(month, year);
jta.setText(s);
}
private String lagOversikt(String m,String y){
// String s="";
String output ="<html>" +
"<table BORDER=1 CELLSPACING=1 CELLPADDING=1>";
// construct d as current date
GregorianCalendar d = new GregorianCalendar();
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH);
// set d to start date of the month
d.set(Calendar.DAY_OF_MONTH, 1);
int weekday = d.get(Calendar.DAY_OF_WEEK);
// print heading
output += "<TR><TD ALIGN=center>Mon</TD>"
+"<TD ALIGN=center>Tue</TD>"
+"<TD ALIGN=center>Wed</TD>"
+"<TD ALIGN=center>Thu</TD>"
+"<TD ALIGN=center>Fri</TD>"
+"<TD ALIGN=center>Sat</TD>"
+"<TD ALIGN=center>Sun</TD>"
+"</TR>";
// indent first line of calendar
for (int i = Calendar.MONDAY; i < weekday; i++ )
output +="<td align=\"center\"></td>";
do
{
// print day
int day = d.get(Calendar.DAY_OF_MONTH);
if (day==today)
output += "<td align=\"center\"><b>"+day+"</b></td>";
else output += "<td align=\"center\">"+day+"</td>";
// start a new line after every Saturday
if (weekday == Calendar.MONDAY)
output +="</tr><tr>";
// advance d to the next day
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
while (d.get(Calendar.MONTH) == month);
// the loop exits when d is day 1 of the next month
// print final end of line if necessary
if (weekday != Calendar.MONDAY);
output+=("");
output +="</tr></table></html>";
return output;
}
JTextArea jta=new JTextArea();
}
class MittPanel extends JPanel implements ActionListener
{
//deklarasjonene st聄 utenfor handlingene slik at
//MittPanel eier dem "has-a"
private static final long serialVersionUID = 1L;
JTextField jtf1=new JTextField(10);
JTextField jtf2=new JTextField(4);
JButton jb=new JButton("Lag");
//add(LagButton);
//jb.addActionListener(this);
public MittPanel(){
this.add(jtf1);
this.add(jtf2);
this.add(jb);
jb.addActionListener(this);
}
public void actionPerformed(ActionEvent evt){
}
public JButton getKnapp(){
return jb;
}
public String getYear(){
return jtf2.getText();
}
public String getMonth(){
return jtf1.getText();
}
}
Message was edited by:
Stian7

