kalender machen

Status
Nicht offen für weitere Antworten.

SebiB90

Top Contributor
ich wollt jetzt mal ein kalender machen in dem man termine eintragen kann.
nur ich hab kein plan wie man sowas machen kann.
könnt ihr mir paar tips geben und/oder links zu tuts?

Danke
 

DP

Top Contributor
fehlt dir das konzept oder die programmierkenntnis?

wenn dir das konzept fehlt, kannste dir den kalender von outlook anschauen. bei letzterem hilft nur lernen, lernen, lernen ;) :D
 
B

bygones

Gast
schau dir mal das Dashboard2 von Roar an, das hat einen Kalender drinnen...

anfangen wie man immer anfangen sollte - welche Klassen werden benötigt, welche Klasse ist für was zuständig... vll an einer kleinen first-try GUI rumprobieren usw
 

abollm

Top Contributor
Hier einmal als Anregung für eine GUI einige Zeilen Code:

Code:
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.text.SimpleDateFormat;

import javax.swing.*;
import javax.swing.event.PopupMenuListener;
import javax.swing.event.PopupMenuEvent;
import javax.swing.plaf.ComboBoxUI;
import javax.swing.plaf.basic.ComboPopup;
import javax.swing.plaf.metal.MetalComboBoxUI;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.EmptyBorder;

import com.sun.java.swing.plaf.motif.MotifComboBoxUI;
import com.sun.java.swing.plaf.windows.WindowsComboBoxUI;

public class DateExampleJCombo extends JComboBox {

	protected SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MMM.yyyy");

	public void setDateFormat(SimpleDateFormat dateFormat) {
		this.dateFormat = dateFormat;
	}

	public void setSelectedItem(Object item) {
		removeAllItems(); // unterdrückt Popup, wenn sichtbar
		addItem(item);
		super.setSelectedItem(item);
	}

	public void updateUI() {
		ComboBoxUI cui = (ComboBoxUI) UIManager.getUI(this);
		if (cui instanceof MetalComboBoxUI) {
			cui = new MetalDateComboBoxUI();
		} else if (cui instanceof MotifComboBoxUI) {
			cui = new MotifDateComboBoxUI();
		} else if (cui instanceof WindowsComboBoxUI) {
			cui = new WindowsDateComboBoxUI();
		}
		setUI(cui);
	}

	// Innere Klassen nur dazu, um die DateComboBox-Komponente 
	// in einer Datei zu halten

	// UI-Klassen

	class MetalDateComboBoxUI extends MetalComboBoxUI {
		protected ComboPopup createPopup() {
			return new DatePopup(comboBox);
		}
	}

	class WindowsDateComboBoxUI extends WindowsComboBoxUI {
		protected ComboPopup createPopup() {
			return new DatePopup(comboBox);
		}
	}

	class MotifDateComboBoxUI extends MotifComboBoxUI {
		protected ComboPopup createPopup() {
			return new DatePopup(comboBox);
		}
	}

	class DatePopup implements ComboPopup, MouseMotionListener, MouseListener,
			KeyListener, PopupMenuListener {

		protected JComboBox comboBox;

		protected Calendar calendar;

		protected JPopupMenu popup;

		protected JLabel monthLabel;

		protected JPanel days = null;

		protected SimpleDateFormat monthFormat = new SimpleDateFormat(
				"dd MMM yyyy");

		protected Color selectedBackground;

		protected Color selectedForeground;

		protected Color background;

		protected Color foreground;

		public DatePopup(JComboBox comboBox) {
			this.comboBox = comboBox;
			calendar = Calendar.getInstance();
			// Prüfe L&F
			background = UIManager.getColor("ComboBox.background");
			foreground = UIManager.getColor("ComboBox.foreground");
			selectedBackground = UIManager
					.getColor("ComboBox.selectionBackground");
			selectedForeground = UIManager
					.getColor("ComboBox.selectionForeground");

			initializePopup();
		}

		// Combo-Popup Methode implementieren
		public void show() {
			try {
				// wenn setSelectedItem() mit einem gültigen Datum aufgerufen -> Kalender einstellen
				calendar.setTime(dateFormat.parse(comboBox.getSelectedItem()
						.toString()));
			} catch (Exception e) {
			}
			updatePopup();
			popup.show(comboBox, 0, comboBox.getHeight());
		}

		public void hide() {
			popup.setVisible(false);
		}

		protected JList list = new JList();

		public JList getList() {
			return list;
		}

		public MouseListener getMouseListener() {
			return this;
		}

		public MouseMotionListener getMouseMotionListener() {
			return this;
		}

		public KeyListener getKeyListener() {
			return this;
		}

		public boolean isVisible() {
			return popup.isVisible();
		}

		public void uninstallingUI() {
			popup.removePopupMenuListener(this);
		}

		public void mousePressed(MouseEvent e) {
		}

		public void mouseReleased(MouseEvent e) {
		}

		// ... was anderes
		public void mouseClicked(MouseEvent e) {
			if (!SwingUtilities.isLeftMouseButton(e))
				return;
			if (!comboBox.isEnabled())
				return;
			if (comboBox.isEditable()) {
				comboBox.getEditor().getEditorComponent().requestFocus();
			} else {
				comboBox.requestFocus();
			}
			togglePopup();
		}

		protected boolean mouseInside = false;

		public void mouseEntered(MouseEvent e) {
			mouseInside = true;
		}

		public void mouseExited(MouseEvent e) {
			mouseInside = false;
		}

		// MouseMotionListener
		public void mouseDragged(MouseEvent e) {
		}

		public void mouseMoved(MouseEvent e) {
		}

		// KeyListener
		public void keyPressed(KeyEvent e) {
		}

		public void keyTyped(KeyEvent e) {
		}

		public void keyReleased(KeyEvent e) {
			if (e.getKeyCode() == KeyEvent.VK_SPACE
					|| e.getKeyCode() == KeyEvent.VK_ENTER) {
				togglePopup();
			}
		}

		/**
		 * Variables hideNext and mouseInside are used to 
		 * hide the popupMenu by clicking the mouse in the JComboBox
		 */
		public void popupMenuCanceled(PopupMenuEvent e) {
		}

		protected boolean hideNext = false;

		public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
			hideNext = mouseInside;
		}

		public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
		}

		protected void togglePopup() {
			if (isVisible() || hideNext) {
				hide();
			} else {
				show();
			}
			hideNext = false;
		}

		// Bemerkung: JButton nicht benutzt, da ....
		protected JLabel createUpdateButton(final int field, final int amount) {
			final JLabel label = new JLabel();
			final Border selectedBorder = new EtchedBorder();
			final Border unselectedBorder = new EmptyBorder(selectedBorder
					.getBorderInsets(new JLabel()));
			label.setBorder(unselectedBorder);
			label.setForeground(foreground);
			label.addMouseListener(new MouseAdapter() {
				public void mouseReleased(MouseEvent e) {
					calendar.add(field, amount);
					updatePopup();
				}

				public void mouseEntered(MouseEvent e) {
					label.setBorder(selectedBorder);
				}

				public void mouseExited(MouseEvent e) {
					label.setBorder(unselectedBorder);
				}
			});
			return label;
		}

		protected void initializePopup() {
			JPanel header = new JPanel();
			header.setLayout(new BoxLayout(header, BoxLayout.X_AXIS));
			header.setBackground(background);
			header.setOpaque(true);

			JLabel label;
			label = createUpdateButton(Calendar.YEAR, -1);
			label.setText("<<");
			label.setToolTipText("Vorheriges Jahr");

			header.add(Box.createHorizontalStrut(12));
			header.add(label);
			header.add(Box.createHorizontalStrut(12));

			label = createUpdateButton(Calendar.MONTH, -1);
			label.setText("<");
			label.setToolTipText("Vorheriger Monat");
			header.add(label);

			monthLabel = new JLabel("", JLabel.CENTER);
			monthLabel.setForeground(foreground);
			header.add(Box.createHorizontalGlue());
			header.add(monthLabel);
			header.add(Box.createHorizontalGlue());

			label = createUpdateButton(Calendar.MONTH, 1);
			label.setText(">");
			label.setToolTipText("Nächster Monat");
			header.add(label);

			label = createUpdateButton(Calendar.YEAR, 1);
			label.setText(">>");
			label.setToolTipText("Nächstes Jahr");

			header.add(Box.createHorizontalStrut(12));
			header.add(label);
			header.add(Box.createHorizontalStrut(12));

			popup = new JPopupMenu();
			popup.setBorder(BorderFactory.createLineBorder(Color.black));
			popup.setLayout(new BorderLayout());
			popup.setBackground(background);
			popup.addPopupMenuListener(this);
			popup.add(BorderLayout.NORTH, header);
		}

		protected void updatePopup() {
			monthLabel.setText(monthFormat.format(calendar.getTime()));
			if (days != null) {
				popup.remove(days);
			}
			days = new JPanel(new GridLayout(0, 7));
			days.setBackground(background);
			days.setOpaque(true);

			Calendar setupCalendar = (Calendar) calendar.clone();
			setupCalendar.set(Calendar.DAY_OF_WEEK, setupCalendar
					.getFirstDayOfWeek());
			for (int i = 0; i < 7; i++) {
				int dayInt = setupCalendar.get(Calendar.DAY_OF_WEEK);
				JLabel label = new JLabel();
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setForeground(foreground);
				if (dayInt == Calendar.SUNDAY) {
					label.setText("Son");
				} else if (dayInt == Calendar.MONDAY) {
					label.setText("Mon");
				} else if (dayInt == Calendar.TUESDAY) {
					label.setText("Die");
				} else if (dayInt == Calendar.WEDNESDAY) {
					label.setText("Mit");
				} else if (dayInt == Calendar.THURSDAY) {
					label.setText("Don");
				} else if (dayInt == Calendar.FRIDAY) {
					label.setText("Fre");
				} else if (dayInt == Calendar.SATURDAY) {
					label.setText("Sam");
				}
				days.add(label);
				setupCalendar.roll(Calendar.DAY_OF_WEEK, true);
			}

			setupCalendar = (Calendar) calendar.clone();
			setupCalendar.set(Calendar.DAY_OF_MONTH, 1);
			int first = setupCalendar.get(Calendar.DAY_OF_WEEK);
			for (int i = 0; i < (first - 1); i++) {
				days.add(new JLabel(""));
			}
			for (int i = 1; i <= setupCalendar
					.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
				final int day = i;
				final JLabel label = new JLabel(String.valueOf(day));
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setForeground(foreground);
				label.addMouseListener(new MouseListener() {
					public void mousePressed(MouseEvent e) {
					}

					public void mouseClicked(MouseEvent e) {
					}

					public void mouseReleased(MouseEvent e) {
						label.setOpaque(false);
						label.setBackground(background);
						label.setForeground(foreground);
						calendar.set(Calendar.DAY_OF_MONTH, day);
						comboBox.setSelectedItem(dateFormat.format(calendar
								.getTime()));
						// hide();
						// hide is called with setSelectedItem() ... removeAll()
						comboBox.requestFocus();
					}

					public void mouseEntered(MouseEvent e) {
						label.setOpaque(true);
						label.setBackground(selectedBackground);
						label.setForeground(selectedForeground);
					}

					public void mouseExited(MouseEvent e) {
						label.setOpaque(false);
						label.setBackground(background);
						label.setForeground(foreground);
					}
				});

				days.add(label);
			}

			popup.add(BorderLayout.CENTER, days);
			popup.pack();
		}
	}

	// Beispiel-GUI
	public static void main(String args[]) {
		JFrame f = new JFrame("Demo für DateComboBox -> Kalender");
		Container c = f.getContentPane();
		c.setLayout(new FlowLayout());
		c.add(new JLabel("Termin 1:"));
		c.add(new DateExampleJCombo());
		c.add(new JLabel("Termin 2:"));
		c.add(new DateExampleJCombo());
		c.add(new JLabel("Termin 3:"));
		DateExampleJCombo dcb3 = new DateExampleJCombo();
		dcb3.setEditable(true);
		c.add(dcb3);
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		f.setSize(640, 200);
		f.setVisible(true);
	}

}
 

abollm

Top Contributor
Illuvatar hat gesagt.:
Die Date-Popupklasse is ja cool ;)

Ja, enthält aber noch einen kleinen Fehler, deshalb bitte folgende Zeile(n) verwenden (Ursache ist wie so oft, der unterschiedliche Wochenbeginn zwischen amerikanischem und deutschem Kalender):
Code:
...
			for (int i = 0; i < 7; i++) {
				int dayInt = setupCalendar.get(Calendar.DAY_OF_WEEK);
				JLabel label = new JLabel();
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setForeground(foreground);
				if (dayInt == Calendar.MONDAY) {
					label.setText("Mon");
				} else if (dayInt == Calendar.TUESDAY) {
					label.setText("Die");
				} else if (dayInt == Calendar.WEDNESDAY) {
					label.setText("Mit");
				} else if (dayInt == Calendar.THURSDAY) {
					label.setText("Don");
				} else if (dayInt == Calendar.FRIDAY) {
					label.setText("Fre");
				} else if (dayInt == Calendar.SATURDAY) {
					label.setText("Sam");
				} else if  (dayInt == Calendar.SUNDAY) {
					label.setText("Son");
				} 
				
				days.add(label);
				setupCalendar.roll(Calendar.DAY_OF_WEEK, true);
			}

			setupCalendar = (Calendar) calendar.clone();
			setupCalendar.set(Calendar.DAY_OF_MONTH, 1);
			int first = setupCalendar.get(Calendar.DAY_OF_WEEK);
			for (int i = 0; i < (first -2); i++) {
				days.add(new JLabel(""));
			}
...
Konkret ist eigentlich nur eine Zeile verändert worden (-> first -2). Ich habe aber aus Gründen des besseren Auffindens mehrere Zeilen gepostet.
 

SebiB90

Top Contributor
:shock:
ich hoffe du hast das nicht nur wegen mir geschrieben
ich werd´s mir morgen ansehen. für heute ist das zu viel für mich

Schonmal Danke abollm
 
R

Roar

Gast
abollm hat gesagt.:
]Ja, enthält aber noch einen kleinen Fehler, deshalb bitte folgende Zeile(n) verwenden (Ursache ist wie so oft, der unterschiedliche Wochenbeginn zwischen amerikanischem und deutschem Kalender):

hmm das kann man aber auch einfacherer internationalisieren :roll:

so hier ist mein senf dazu:

Code:
	private void setCalendar(Calendar cal) {
		Calendar tempCal = (Calendar) cal.clone(); // blaaa
		tempCal.set(Calendar.DAY_OF_MONTH, 1);
		int firstDayOfWeek = tempCal.getFirstDayOfWeek();
		int firstDay = tempCal.get(Calendar.DAY_OF_WEEK) - firstDayOfWeek;
		if (firstDay < 0) {
			firstDay += 7;
		}
		Object[] colHeads = new String[7];
		Object[][] rowData = new String[6][7];
		DateFormatSymbols dfs = new DateFormatSymbols(); // <-wichtig
		String[] days = dfs.getShortWeekdays(); // <- auch
		int actualday = firstDayOfWeek;
		for(int i=0; i<7; i++) {
			colHeads[i] = days[actualday];
			if(actualday < 7) {
				actualday++;
			} else {
				actualday -= 6;
			}
		}
		tempCal.add(Calendar.MONTH, 1);
		Date firstDayInNextMonth = tempCal.getTime();
		tempCal.add(Calendar.MONTH, -1);
		Date day = tempCal.getTime();
		int n = 0;
		int col = firstDay;
		int row = 0;
		while (day.before(firstDayInNextMonth)) {
			SimpleDateFormat f = new SimpleDateFormat("dd");
			if(col == 7) {
				col = 0;
				row++;
			}
			rowData[row][col] = f.format(day);
			col++;
			n++;
			tempCal.add(Calendar.DATE, 1);
			day = tempCal.getTime();
		}
		model.setDataVector(rowData, colHeads); // model für JTable
		yearSpinnerModel.setValue(new Integer(cal.get(Calendar.YEAR))); // so n JSpinner
		monthSpinnerModel.setValue(monthSpinnerModel.getList().get(cal.get(Calendar.MONTH))); // noch son spinner model
	}

die wichtigen stelllen sind gekennzeichnet, die restlichen nur zur vollständigkeit halber da. also wenn du die Locale änderst, sollte nach nem erneuten aufruf der methode die wochentage entsrepchend anders angeordnet sein und das Mon, Die, Mit und so wird auch automatisch gesetzt.
 

abollm

Top Contributor
Roar hat gesagt.:
...

hmm das kann man aber auch einfacherer internationalisieren :roll:

Das ist schon klar, nur schreib ich hier nicht aus einem engl. Beispiel heraus auch noch groß Klassen zum Internationalisieren von Datumswerten.
Das Trum da oben ist eh schon zu lang für ein einfaches Beispiel

Trotzdem danke für den Code, denn so etwas kann man immer mal gebrauchen.
 

SebiB90

Top Contributor
irgendwie kapierich den code noch nicht.
ich muss mal mit mit der calendar class auseinandersetzen
aber irgendwie ist der kalender nicht richtig.
manchmal stimmt der wochentag nicht über ein.
z.B der 5.4.1987 war ein sonntag aber das prog zeigt ein anderen wochentag an
kann es sein das die schaltjahre nicht mitgerechent werden???

und hab noch ne frage für was ist die funktion opaque da?
 

SebiB90

Top Contributor
ich ahb das jetzt versucht umzuschreiben. ich will das als jpanel haben. das funzt auch, nur das upadeten nicht :( also wenn man jahr/monat vor/zurück schaltet.

hier der code
Code:
package organizer.gui;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class Kalender extends JPanel {
  private Calendar calendar;
  private JPanel days;
  
  public Kalender() {
    super();
    this.calendar=Calendar.getInstance();
    this.initializeJPanel();
    this.updatePanel();
  }
  
  protected void updatePanel() {
    System.out.println("update");
    days = new JPanel(new GridLayout(0, 7));
    days.setOpaque(true);
    Calendar setupCalendar = (Calendar) calendar.clone();
    System.out.println("setup: " + setupCalendar.toString());
    setupCalendar.set(Calendar.DAY_OF_WEEK, setupCalendar
                      .getFirstDayOfWeek());
    for (int i = 0; i < 7; i++) {
      int dayInt = setupCalendar.get(Calendar.DAY_OF_WEEK);
      JLabel label = new JLabel();
      label.setHorizontalAlignment(JLabel.CENTER);
      if (dayInt == Calendar.SUNDAY) {
        label.setText("Son");
      }
      else if (dayInt == Calendar.MONDAY) {
        label.setText("Mon");
      }
      else if (dayInt == Calendar.TUESDAY) {
        label.setText("Die");
      }
      else if (dayInt == Calendar.WEDNESDAY) {
        label.setText("Mit");
      }
      else if (dayInt == Calendar.THURSDAY) {
        label.setText("Don");
      }
      else if (dayInt == Calendar.FRIDAY) {
        label.setText("Fre");
      }
      else if (dayInt == Calendar.SATURDAY) {
        label.setText("Sam");
      }
      days.add(label);
      setupCalendar.roll(Calendar.DAY_OF_WEEK, true);
    }

    setupCalendar = (Calendar) calendar.clone();
    setupCalendar.set(Calendar.DAY_OF_MONTH, 1);
    int firstday = setupCalendar.get(Calendar.DAY_OF_WEEK);
    System.out.println("first:" + firstday);
    for (int i = 1; i < (firstday - 1); i++) {
      days.add(new JLabel(""));
    }
    for (int i = 1; i < setupCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
      int day = i;
      JLabel label = new JLabel(String.valueOf(day));
      label.setHorizontalAlignment(JLabel.CENTER);
      days.add(label);
    }
    this.add(days, BorderLayout.CENTER);
  }
  
  private JLabel createUpdateButton(final int field,final int amount) {
    final JLabel label = new JLabel();
    final Border selectedBorder = new EtchedBorder();
    final Border unselectedBorder = new EmptyBorder(selectedBorder
        .getBorderInsets(new JLabel()));
    label.setBorder(unselectedBorder);
    label.addMouseListener(new MouseAdapter() {
      public void mouseReleased(MouseEvent e) {
        calendar.add(field, amount);
        Kalender.this.updatePanel();
        System.out.println(calendar.toString());
      }

      public void mouseEntered(MouseEvent e) {
        label.setBorder(selectedBorder);
      }

      public void mouseExited(MouseEvent e) {
        label.setBorder(unselectedBorder);
      }
    });
    return label;
  }
  
  private void initializeJPanel() {
    JPanel header = new JPanel();
    JLabel label;
    label = this.createUpdateButton(Calendar.YEAR, -1);
    label.setText("<<");
    header.add(label);

    label = this.createUpdateButton(Calendar.MONTH, -1);
    label.setText("<");
    header.add(label);

    label = this.createUpdateButton(Calendar.MONTH, 1);
    label.setText(">");
    header.add(label);

    label = this.createUpdateButton(Calendar.YEAR, 1);
    label.setText(">>");
    header.add(label);

    this.setLayout(new BorderLayout());
    this.add(header, BorderLayout.NORTH);
  }
}
 
R

Roar

Gast
ne funktion?? :autsch:

edit: hmm... sry ich hab grad gta gespielt :lol:
 

abollm

Top Contributor
@Roar:
Herzlichen und so, na du weißt schon.

@SebiB90:
Das Teil, was ich da gepostet habe, ist aus einer englischen Vorlage. Soweit ich erkennen kann, hast du die notwendige Änderung (s. mein zweites Posting oben), nicht eingefügt.
Ich habe hier aber noch ein wesentlich besseres Teil herumliegen, das allerdings noch in eine "Swing"-Form gegossen werden müsste. Werde mich mal morgen versuchen damit zu beschäftigen. Wenn ich ertwas halbwegs Brauchbares habe, poste ich es hier.
 

SebiB90

Top Contributor
abollm hat gesagt.:
@SebiB90:
Das Teil, was ich da gepostet habe, ist aus einer englischen Vorlage. Soweit ich erkennen kann, hast du die notwendige Änderung (s. mein zweites Posting oben), nicht eingefügt.
welche änderung?

das das ne methode is weiß ich. auchich wollte wissen was die bewirkt
 

SebiB90

Top Contributor
könnt ihr bitte antworten

und hab noch ein problem.wenn ein anderes fenster mein erzeugtes fenster überdeckt verschwinden alle JLabel. erst wenn man drüber her fährt und der listener was tut sind die wieder da. wieso ist das so?
 

SebiB90

Top Contributor
in der class DateExampleJCombo will ich eine funktion setDate einfügen diese muss dann die variable calendar in der popup class ändern.nur ich weiß nicht wie ich auf die variable zugreifen kann
 

abollm

Top Contributor
SebiB90 hat gesagt.:
in der class DateExampleJCombo will ich eine funktion setDate einfügen diese muss dann die variable calendar in der popup class ändern.nur ich weiß nicht wie ich auf die variable zugreifen kann

Ich habe als _Anregung_ einmal die folgende Methode in der Klasse verändert, damit du siehst, wie du das Datum in einem bestimmten Format ausgeben kannst. Du musst jetzt nur noch geeignet mit betr. Variablen hantieren, dann dürftest du dein Problem in den Griff bekommen.


Code:
...
public class DateExampleJCombo extends JComboBox {

	protected SimpleDateFormat dateFormat = new SimpleDateFormat("dd. MMMM yyyy");

	public void setDateFormat(SimpleDateFormat dateFormat) {
		this.dateFormat = dateFormat;
	}

	public void setSelectedItem(Object item) {
		removeAllItems(); // unterdrückt Popup, wenn sichtbar
		addItem(item);
		super.setSelectedItem(item);
		String s = item.toString();
		try {
			Date theDate = dateFormat.parse(s);
			System.out
					.println("Aktuelles Datum: " + dateFormat.format(theDate));
		} catch (ParseException pe) {
			System.out.println("Eingegebenes Datum (" + s
					+ ") entspricht nicht Format \"dd.MMM.yyyy\"");
		}
	}

...
Hoffe es nützt.
 

SebiB90

Top Contributor
du hast mich nich verstanden was ich mein

Code:
public class DateJCombo extends JComboBox {

   protected SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MMM.yyyy");

   public DateJCombo() {
     this.calendar = Calendar.getInstance();
   }

   public void setDateFormat(SimpleDateFormat dateFormat) {
      this.dateFormat = dateFormat;
   }

   public void setSelectedItem(Object item) {
      removeAllItems(); // unterdrückt Popup, wenn sichtbar
      addItem(item);
      super.setSelectedItem(item);
   }

   public void updateUI() {
      ComboBoxUI cui = (ComboBoxUI) UIManager.getUI(this);
      if (cui instanceof MetalComboBoxUI) {
         cui = new MetalDateComboBoxUI();
      } else if (cui instanceof MotifComboBoxUI) {
         cui = new MotifDateComboBoxUI();
      } else if (cui instanceof WindowsComboBoxUI) {
         cui = new WindowsDateComboBoxUI();
      }
      setUI(cui);
   }

   
   public void setDate(Date d) {
     //diese methode muss die variable calendar in der class DatePopup verändern nur wie kann ich die ansprechen?
   }

   //...

   class DatePopup implements ComboPopup, MouseMotionListener, MouseListener,
         KeyListener, PopupMenuListener {
      //diese variablesoll mit der methode geändert werden
      protected Calendar calendar;
    //...
   }
}
 

abollm

Top Contributor
Hallo SebiB90,

ich habe dich nicht falsch verstanden, sondern nur geglaubt, dass du das selbst
hinbekommst, denn eine eigene Methode ist gar nicht notwendig, sofern du der
JComboBox nur (irgend-)einen festen Datumswert zuweisen willst.

Die von mir im vohergehenden Posting eingefügten Zeilen kannst du bis auf einige
kalenderspezifische Dinge fast 1:1 hernehmen.

Ich habe dir hier einmal den kompletten, überarbeiteten Code gepostet, dann
siehst du wahrscheinlich, wie "einfach" die Lösung ist.

Das ist alles natürlich nicht perfekt (Stichwort: führende Null bei
Tageswerten < 10), aber man kann damit arbeiten.

Code:
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.swing.*;
import javax.swing.event.PopupMenuListener;
import javax.swing.event.PopupMenuEvent;
import javax.swing.plaf.ComboBoxUI;
import javax.swing.plaf.basic.ComboPopup;
import javax.swing.plaf.metal.MetalComboBoxUI;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.EmptyBorder;

import com.sun.java.swing.plaf.motif.MotifComboBoxUI;
import com.sun.java.swing.plaf.windows.WindowsComboBoxUI;

public class DateExampleJCombo extends JComboBox {

	protected static SimpleDateFormat dateFormat = new SimpleDateFormat(
			"dd.MM.yyyy");

	public void setDateFormat(SimpleDateFormat dateFormat) {
		DateExampleJCombo.dateFormat = dateFormat;
	}

	public void setSelectedItem(Object item) {
		removeAllItems(); // unterdrückt Popup, wenn sichtbar
		addItem(item);
		super.setSelectedItem(item);
		String s = item.toString();
		try {
			Date theDate = dateFormat.parse(s);
			System.out.println("Nach Aufruf Combo3 - aktuelles Datum: "
					+ dateFormat.format(theDate));
		} catch (ParseException pe) {
			System.out.println("Eingegebenes Datum (" + s
					+ ") entspricht nicht Format \"dd.MM.yyyy\"");
		}
	}

	public void updateUI() {
		ComboBoxUI cui = (ComboBoxUI) UIManager.getUI(this);
		if (cui instanceof MetalComboBoxUI) {
			cui = new MetalDateComboBoxUI();
		} else if (cui instanceof MotifComboBoxUI) {
			cui = new MotifDateComboBoxUI();
		} else if (cui instanceof WindowsComboBoxUI) {
			cui = new WindowsDateComboBoxUI();
		}
		setUI(cui);
	}

	// Innere Klassen nur dazu, um die DateComboBox-Komponente 
	// in einer Datei zu halten

	// UI-Klassen

	class MetalDateComboBoxUI extends MetalComboBoxUI {
		protected ComboPopup createPopup() {
			return new DatePopup(comboBox);
		}
	}

	class WindowsDateComboBoxUI extends WindowsComboBoxUI {
		protected ComboPopup createPopup() {
			return new DatePopup(comboBox);
		}
	}

	class MotifDateComboBoxUI extends MotifComboBoxUI {
		protected ComboPopup createPopup() {
			return new DatePopup(comboBox);
		}
	}

	class DatePopup implements ComboPopup, MouseMotionListener, MouseListener,
			KeyListener, PopupMenuListener {

		protected JComboBox comboBox;

		protected Calendar calendar;

		protected JPopupMenu popup;

		protected JLabel monthLabel;

		protected JPanel days = null;

		protected SimpleDateFormat monthFormat = new SimpleDateFormat(
				"dd MMM yyyy");

		protected Color selectedBackground;

		protected Color selectedForeground;

		protected Color background;

		protected Color foreground;

		public DatePopup(JComboBox comboBox) {
			this.comboBox = comboBox;
			calendar = Calendar.getInstance();

			// Prüfe L&F
			background = UIManager.getColor("ComboBox.background");
			foreground = UIManager.getColor("ComboBox.foreground");
			selectedBackground = UIManager
					.getColor("ComboBox.selectionBackground");
			selectedForeground = UIManager
					.getColor("ComboBox.selectionForeground");

			initializePopup();
		}

		// Combo-Popup Methode implementieren
		public void show() {
			try {
				// wenn setSelectedItem() mit einem gültigen Datum aufgerufen -> Kalender einstellen
				calendar.setTime(dateFormat.parse(comboBox.getSelectedItem()
						.toString()));

			} catch (Exception e) {
			}
			updatePopup();
			popup.show(comboBox, 0, comboBox.getHeight());
		}

		public void hide() {
			popup.setVisible(false);
		}

		protected JList list = new JList();

		public JList getList() {
			return list;
		}

		public MouseListener getMouseListener() {
			return this;
		}

		public MouseMotionListener getMouseMotionListener() {
			return this;
		}

		public KeyListener getKeyListener() {
			return this;
		}

		public boolean isVisible() {
			return popup.isVisible();
		}

		public void uninstallingUI() {
			popup.removePopupMenuListener(this);
		}

		public void mousePressed(MouseEvent e) {
		}

		public void mouseReleased(MouseEvent e) {
		}

		// ... was anderes
		public void mouseClicked(MouseEvent e) {
			if (!SwingUtilities.isLeftMouseButton(e))
				return;
			if (!comboBox.isEnabled())
				return;
			if (comboBox.isEditable()) {
				comboBox.getEditor().getEditorComponent().requestFocus();
			} else {
				comboBox.requestFocus();
			}
			togglePopup();
		}

		protected boolean mouseInside = false;

		public void mouseEntered(MouseEvent e) {
			mouseInside = true;
		}

		public void mouseExited(MouseEvent e) {
			mouseInside = false;
		}

		// MouseMotionListener
		public void mouseDragged(MouseEvent e) {
		}

		public void mouseMoved(MouseEvent e) {
		}

		// KeyListener
		public void keyPressed(KeyEvent e) {
		}

		public void keyTyped(KeyEvent e) {
		}

		public void keyReleased(KeyEvent e) {
			if (e.getKeyCode() == KeyEvent.VK_SPACE
					|| e.getKeyCode() == KeyEvent.VK_ENTER) {
				togglePopup();
			}
		}

		/**
		 * Variables hideNext and mouseInside are used to 
		 * hide the popupMenu by clicking the mouse in the JComboBox
		 */
		public void popupMenuCanceled(PopupMenuEvent e) {
		}

		protected boolean hideNext = false;

		public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
			hideNext = mouseInside;
		}

		public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
		}

		protected void togglePopup() {
			if (isVisible() || hideNext) {
				hide();
			} else {
				show();
			}
			hideNext = false;
		}

		// Bemerkung: JButton nicht benutzt, da ....
		protected JLabel createUpdateButton(final int field, final int amount) {
			final JLabel label = new JLabel();
			final Border selectedBorder = new EtchedBorder();
			final Border unselectedBorder = new EmptyBorder(selectedBorder
					.getBorderInsets(new JLabel()));
			label.setBorder(unselectedBorder);
			label.setForeground(foreground);
			label.addMouseListener(new MouseAdapter() {
				public void mouseReleased(MouseEvent e) {
					calendar.add(field, amount);
					updatePopup();
				}

				public void mouseEntered(MouseEvent e) {
					label.setBorder(selectedBorder);
				}

				public void mouseExited(MouseEvent e) {
					label.setBorder(unselectedBorder);
				}
			});
			return label;
		}

		protected void initializePopup() {
			JPanel header = new JPanel();
			header.setLayout(new BoxLayout(header, BoxLayout.X_AXIS));
			header.setBackground(background);
			header.setOpaque(true);

			JLabel label;
			label = createUpdateButton(Calendar.YEAR, -1);
			label.setText("<<");
			label.setToolTipText("Vorheriges Jahr");

			header.add(Box.createHorizontalStrut(12));
			header.add(label);
			header.add(Box.createHorizontalStrut(12));

			label = createUpdateButton(Calendar.MONTH, -1);
			label.setText("<");
			label.setToolTipText("Vorheriger Monat");
			header.add(label);

			monthLabel = new JLabel("", JLabel.CENTER);
			monthLabel.setForeground(foreground);
			header.add(Box.createHorizontalGlue());
			header.add(monthLabel);
			header.add(Box.createHorizontalGlue());

			label = createUpdateButton(Calendar.MONTH, 1);
			label.setText(">");
			label.setToolTipText("Nächster Monat");
			header.add(label);

			label = createUpdateButton(Calendar.YEAR, 1);
			label.setText(">>");
			label.setToolTipText("Nächstes Jahr");

			header.add(Box.createHorizontalStrut(12));
			header.add(label);
			header.add(Box.createHorizontalStrut(12));

			popup = new JPopupMenu();
			popup.setBorder(BorderFactory.createLineBorder(Color.black));
			popup.setLayout(new BorderLayout());
			popup.setBackground(background);
			popup.addPopupMenuListener(this);
			popup.add(BorderLayout.NORTH, header);
		}

		protected void updatePopup() {
			monthLabel.setText(monthFormat.format(calendar.getTime()));
			if (days != null) {
				popup.remove(days);
			}
			days = new JPanel(new GridLayout(0, 7));
			days.setBackground(background);
			days.setOpaque(true);

			Calendar setupCalendar = (Calendar) calendar.clone();
			setupCalendar.set(Calendar.DAY_OF_WEEK, setupCalendar
					.getFirstDayOfWeek());
			for (int i = 0; i < 7; i++) {
				int dayInt = setupCalendar.get(Calendar.DAY_OF_WEEK);
				JLabel label = new JLabel();
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setForeground(foreground);
				if (dayInt == Calendar.MONDAY) {
					label.setText("Mon");
				} else if (dayInt == Calendar.TUESDAY) {
					label.setText("Die");
				} else if (dayInt == Calendar.WEDNESDAY) {
					label.setText("Mit");
				} else if (dayInt == Calendar.THURSDAY) {
					label.setText("Don");
				} else if (dayInt == Calendar.FRIDAY) {
					label.setText("Fre");
				} else if (dayInt == Calendar.SATURDAY) {
					label.setText("Sam");
				} else if (dayInt == Calendar.SUNDAY) {
					label.setText("Son");
				}

				days.add(label);
				setupCalendar.roll(Calendar.DAY_OF_WEEK, true);
			}

			setupCalendar = (Calendar) calendar.clone();
			setupCalendar.set(Calendar.DAY_OF_MONTH, 1);
			int first = setupCalendar.get(Calendar.DAY_OF_WEEK);
			for (int i = 0; i < (first - 2); i++) {
				days.add(new JLabel(""));
			}
			for (int i = 1; i <= setupCalendar
					.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
				final int day = i;
				final JLabel label = new JLabel(String.valueOf(day));
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setForeground(foreground);
				label.addMouseListener(new MouseListener() {
					public void mousePressed(MouseEvent e) {
					}

					public void mouseClicked(MouseEvent e) {
					}

					public void mouseReleased(MouseEvent e) {
						label.setOpaque(false);
						label.setBackground(background);
						label.setForeground(foreground);
						calendar.set(Calendar.DAY_OF_MONTH, day);
						//
						comboBox.setSelectedItem(dateFormat.format(calendar
								.getTime()));
						// hide();
						// hide is called with setSelectedItem() ... removeAll()
						comboBox.requestFocus();
					}

					public void mouseEntered(MouseEvent e) {
						label.setOpaque(true);
						label.setBackground(selectedBackground);
						label.setForeground(selectedForeground);
					}

					public void mouseExited(MouseEvent e) {
						label.setOpaque(false);
						label.setBackground(background);
						label.setForeground(foreground);
					}
				});

				days.add(label);
			}

			popup.add(BorderLayout.CENTER, days);
			popup.pack();
		}
	}

	// Beispiel-GUI
	public static void main(String args[]) {
		JFrame f = new JFrame("Demo für DateComboBox -> Kalender");
		Container c = f.getContentPane();
		c.setLayout(new FlowLayout());
		c.add(new JLabel("Termin 1:"));
		c.add(new DateExampleJCombo());
		c.add(new JLabel("Termin 2:"));
		c.add(new DateExampleJCombo());
		c.add(new JLabel("Termin 3:"));
		DateExampleJCombo dcb3 = new DateExampleJCombo();
		dcb3.setEditable(true);
		c.add(dcb3);
		//
		GregorianCalendar cal = new GregorianCalendar();
		cal.set(Calendar.DATE, 1);
		cal.set(Calendar.MONTH, 2 - 1);
		cal.set(Calendar.YEAR, 2003);
		//	Zuweisung JCombo3 mit Datum "01.02.2003";
		String s = cal.get(Calendar.DATE) + "." + (cal.get(Calendar.MONTH) + 1)
				+ "." + cal.get(Calendar.YEAR);
		System.out.println("Vor Aufruf Combo3 - aktuelles zugew. Datum: " + s);
		try {
			Date datum1 = dateFormat.parse(s);
			dcb3.setSelectedItem(s);
		} catch (ParseException pe) {
			System.out.println("Eingegebenes Datum (" + s
					+ ") entspricht nicht Format \"dd.MM.yyyy\"");
		}

		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		f.setSize(640, 200);
		f.setVisible(true);
	}

}

PS: Den "try ...catch"-Block unten kannst du dir grundsätzlich auch sparen. Ich hatte damit lediglich ein wenig herumgespielt.
 

SebiB90

Top Contributor
und was ist mit dem anderen problem?
das mit den kalender,das ich schon angesprochen hab

die JLabel´s verschwinden wenn ich mindest einmal einen anderen monat ausgewählt habe und dann ein anderes fenster über das fenster gelegt wird oder wenn ich im JTabbedPane, in dem das JPanel drin ist, eine andere "karteikarte" auswähle. wieso ist das so?

der der code
Code:
package organizer.gui;

import organizer.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class Kalender extends JPanel {
  private Calendar calendar;
  private JPanel days;
  private JLabel monthLabel;
  private SimpleDateFormat monthFormat = new SimpleDateFormat("dd MMM yyyy");
  private TerminManager manger;

  public Kalender(TerminManager manager) {
    super();
    this.manger=manager;
    this.calendar=Calendar.getInstance();
    this.initializeJPanel();
    this.updatePanel();
  }

  protected void updatePanel() {
    monthLabel.setText(monthFormat.format(calendar.getTime()));
    if(days!=null) {
      days.removeAll();
    }
    days = new JPanel(new GridLayout(0, 7));
    days.setOpaque(true);
    for (int i = 1; i <=7; i++) {
      int dayInt = ( (i + 1) == 8) ? 1 : i + 1;
      JLabel label = new JLabel();
      label.setHorizontalAlignment(JLabel.CENTER);
      if (dayInt == Calendar.SUNDAY) {
        label.setText("Son");
      }
      else if (dayInt == Calendar.MONDAY) {
        label.setText("Mon");
      }
      else if (dayInt == Calendar.TUESDAY) {
        label.setText("Die");
      }
      else if (dayInt == Calendar.WEDNESDAY) {
        label.setText("Mit");
      }
      else if (dayInt == Calendar.THURSDAY) {
        label.setText("Don");
      }
      else if (dayInt == Calendar.FRIDAY) {
        label.setText("Fre");
      }
      else if (dayInt == Calendar.SATURDAY) {
        label.setText("Sam");
      }
      days.add(label);
    }

    Calendar setupCalendar = (Calendar) calendar.clone();
    setupCalendar.set(Calendar.DAY_OF_MONTH, 1);
    int firstday = setupCalendar.get(Calendar.DAY_OF_WEEK);
    for (int i = 1; i < (firstday - 1); i++) {
      days.add(new JLabel(""));
    }
    for (int i = 1; i <=setupCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
      int day = setupCalendar.get(Calendar.DAY_OF_MONTH);
      final Date d = setupCalendar.getTime();
      final JLabel label = new JLabel(String.valueOf(day));
      label.setOpaque(true);
      if(this.manger.isTerminAtDay(d)) {
        String s="<html><center>" + day + "
";
        if(this.manger.isBirthdayAtDay(d)) {
          s+="Geburtstag
";
        }
        if(this.manger.isOtherTerminAtDay(d)) {
          s+="Termin";
        }
        label.setText(s);
        label.addMouseListener(new MouseListener() {
          /**
           * mouseClicked
           *
           * @param e MouseEvent
           */
          public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
              Termin[] t = Kalender.this.manger.getTermineAtDay(d);
              if (t.length == 1) {
                new TerminDialog(null, t[0]);
              }
            }
          }

          /**
           * mouseEntered
           *
           * @param e MouseEvent
           */
          public void mouseEntered(MouseEvent e) {
          }

          /**
           * mouseExited
           *
           * @param e MouseEvent
           */
          public void mouseExited(MouseEvent e) {
          }

          /**
           * mousePressed
           *
           * @param e MouseEvent
           */
          public void mousePressed(MouseEvent e) {
          }

          /**
           * mouseReleased
           *
           * @param e MouseEvent
           */
          public void mouseReleased(MouseEvent e) {
          }

        });
      }
      final Color background=label.getBackground();
      final Color foreground=label.getForeground();
      label.setHorizontalAlignment(JLabel.CENTER);
      label.addMouseListener(new MouseAdapter() {
        public void mouseEntered(MouseEvent e) {
          label.setBackground(Color.BLUE);
          label.setForeground(Color.RED);
        }

        public void mouseExited(MouseEvent e) {
          label.setBackground(background);
          label.setForeground(foreground);
        }
      });
      days.add(label);
      setupCalendar.roll(Calendar.DAY_OF_MONTH,true);
    }
    this.add(days, BorderLayout.CENTER);
    this.revalidate();
  }

  private JLabel createUpdateButton(final int field,final int amount) {
    final JLabel label = new JLabel();
    final Border selectedBorder = new EtchedBorder();
    final Border unselectedBorder = new EmptyBorder(selectedBorder
        .getBorderInsets(new JLabel()));
    label.setBorder(unselectedBorder);
    label.addMouseListener(new MouseAdapter() {
      public void mouseReleased(MouseEvent e) {
        calendar.add(field, amount);
        Kalender.this.updatePanel();
      }

      public void mouseEntered(MouseEvent e) {
        label.setBorder(selectedBorder);
      }

      public void mouseExited(MouseEvent e) {
        label.setBorder(unselectedBorder);
      }
    });
    return label;
  }

  private void initializeJPanel() {
    JPanel header = new JPanel();
    JLabel label;
    label = this.createUpdateButton(Calendar.YEAR, -1);
    label.setText("<<");
    header.add(label);

    label = this.createUpdateButton(Calendar.MONTH, -1);
    label.setText("<");
    header.add(label);

    monthLabel=new JLabel("");
    header.add(monthLabel);

    label = this.createUpdateButton(Calendar.MONTH, 1);
    label.setText(">");
    header.add(label);

    label = this.createUpdateButton(Calendar.YEAR, 1);
    label.setText(">>");
    header.add(label);

    this.setLayout(new BorderLayout());
    this.add(header, BorderLayout.NORTH);
  }
}
 

abollm

Top Contributor
SebiB90 hat gesagt.:
hast du keine ferien? wie alt bist du überhaupt?

schonmal danke
du hilfst mir sehr viel :D

Seit heute habe ich Ferien, endlich.

Leider schaffe ich das doch erst frühestens heute abend, mir dein Problem näher anzuschauen (in meinem Alter brauche ich einfach mehr Pausen :wink: ).
 

SebiB90

Top Contributor
abollm hat gesagt.:
SebiB90 hat gesagt.:
hast du keine ferien? wie alt bist du überhaupt?

schonmal danke
du hilfst mir sehr viel :D

Seit heute habe ich Ferien, endlich.

Leider schaffe ich das doch erst frühestens heute abend, mir dein Problem näher anzuschauen (in meinem Alter brauche ich einfach mehr Pausen :wink: ).
wie alt bist du denn? wenn du mehr pause brauchst?

Dann mach ich erst mal ein anderes programm/bzw. erweitere es, bis du zeit hast.
 
B

BobbyDD

Gast
Hallo an alle,

ich möchte diesen Kalender auch in meinem Programmm benutzen.
Implementiert habe ich ihn schon und läuft ganz gut.
Mein Problem ist aber das ich das ausgewählte Datum in einer anderen Klasse weiter verwenden möchte.
Irgendwie bekomm ich das nicht ohne Fehlermeldung hin.

Beispiel:

Ich habe die Klasse DateComboBox erstellt mit dem Kalender und möchte nun das ausgewählte Datum als String in einer anderen Klasse weiterverwenden.
Code:
...
 DateComboBox dcb = new DateComboBox();
			    this.getContentPane().add(dcb);
				dcb.setEditable(true);
				dcb.setBounds(773,460,173,37);
...
dann die Abfrage nach drücken eines Buttons

String tempItem = dcb.getSelectedItem().toString();
		System.out.println(tempItem);

...
Also ich versuche mich da reinzufitzen aber irgendwie komme ich nicht weiter.

Vielleicht kann mir bitte jemand helfen, solange beschäftige ich mich mit Java noch nicht.


Vielen Dank
BobbyDD
 

BobbyDD

Neues Mitglied
Hallo,

kann mir bitte jemand bei o.g. Problem helfen. Ich komme einfach nicht weiter.

Ich möchte einfach das aus dem Kalender gewählte Datum in einer anderen Klasse in eine Datei schreiben.
Wie kann ich das ausgewählte Datum übertragen????


Vielen Dank für die Mühe


BobbyDD
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
F MS365 Kalender lesen Java Basics - Anfänger-Themen 5
sserio Gregorianischer Kalender und dessen Tage. Java Basics - Anfänger-Themen 14
T simpler Kalender Java Basics - Anfänger-Themen 10
G Kalender Jahreszahlen Java Basics - Anfänger-Themen 6
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
J Gerorianischer Kalender wechselt am Freitag die Woche Warum Java Basics - Anfänger-Themen 2
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
S Hinweis zu Fehler im Kalender-Code - Aufgabe 5.3 aus Grundkurs Programmieren in Java 7. Auflage Java Basics - Anfänger-Themen 4
I c++ sexagesimal kalender Java Basics - Anfänger-Themen 5
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
U Neu Julianischer Kalender Java Basics - Anfänger-Themen 2
T Kalender irrt sich Java Basics - Anfänger-Themen 8
M Kalender reloaded Java Basics - Anfänger-Themen 7
L Kalender Java Frame Java Basics - Anfänger-Themen 7
M Kalender mit Terminen Java Basics - Anfänger-Themen 24
F Problem mit selbstprogrammierten Kalender (als Übung) Java Basics - Anfänger-Themen 4
J Arrays (Kalender) Fehler im Programm Java Basics - Anfänger-Themen 2
P Date oder Kalender? Was soll man verwenden? Java Basics - Anfänger-Themen 2
K Erste Schritte Kalender selber erstellen? Java Basics - Anfänger-Themen 3
A JKomponente für Kalender Java Basics - Anfänger-Themen 5
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
L einfachen kalender Programmieren HA! Java Basics - Anfänger-Themen 76
M Kalender Java Basics - Anfänger-Themen 15
E Methoden zusammenfassen/Kalender erstellen Java Basics - Anfänger-Themen 13
T Einfacher Kalender Java Basics - Anfänger-Themen 17
G Kalender Bean in Netbean einbinden Java Basics - Anfänger-Themen 3
F Termine in einen kalender eintragen. Java Basics - Anfänger-Themen 11
G Kalender Von String zu boolean -- NullpointerException Java Basics - Anfänger-Themen 2
S Wie Termine/Notizen in Outlook Kalender einfügen ? Java Basics - Anfänger-Themen 3
D Gibt es einen vordefinierten Kalender in java? Java Basics - Anfänger-Themen 8
H Java Kalender systemabhängig programmieren? Java Basics - Anfänger-Themen 3
B Kalender -> Termine eintragen Java Basics - Anfänger-Themen 1
W Java Kalender Java Basics - Anfänger-Themen 6
B Kalender und Wochentagswechsel Java Basics - Anfänger-Themen 6
G The serializable class Kalender does not declare a static fi Java Basics - Anfänger-Themen 5
A Kalender mit Objekten belegen Java Basics - Anfänger-Themen 3
A kalender Java Basics - Anfänger-Themen 26
J Wie drucke ich eine Komponente wie Kalender auf dem Drucker Java Basics - Anfänger-Themen 3
G Kalender ? Java Basics - Anfänger-Themen 6
G kalender Java Basics - Anfänger-Themen 15
P Kalender Programmieren Java Basics - Anfänger-Themen 2
H Generics machen mich verrückt Java Basics - Anfänger-Themen 8
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
U Char zu einem String machen Java Basics - Anfänger-Themen 1
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
C Was machen mit nicht mehr verwendeten Instanzen ? Java Basics - Anfänger-Themen 18
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
H Array Slot frei machen Java Basics - Anfänger-Themen 3
H Array Slot frei machen Java Basics - Anfänger-Themen 4
A Algorithmus effizienter machen Java Basics - Anfänger-Themen 1
iman Eingabe von Benutzer Filter machen. Java Basics - Anfänger-Themen 7
F JTextField Kursiv und Fett machen Java Basics - Anfänger-Themen 4
F Aufgabenstellung genauer formulieren/verständlicher machen? Java Basics - Anfänger-Themen 10
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
I JFrame proportional verkleinerbar machen Java Basics - Anfänger-Themen 3
F Aus geraden eine Kurve machen Java Basics - Anfänger-Themen 6
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
M Java Methode editierbar machen im Programm Java Basics - Anfänger-Themen 62
T Wie weiter machen? Java Basics - Anfänger-Themen 9
G Erste Schritte Fehler ausfindig machen Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
DaCrazyJavaExpert JScollPane scrollbar unsichtbar machen Java Basics - Anfänger-Themen 2
P Aus einem Array zwei Arrays machen Java Basics - Anfänger-Themen 3
G Objekt Instanziierung von Eingabe abhängig machen Java Basics - Anfänger-Themen 5
B Unique ID nochmal Unique machen Java Basics - Anfänger-Themen 20
S JLabel sichtbar machen/GUI Java Basics - Anfänger-Themen 3
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
W Wie kann man zufällige Anordnungen machen? Java Basics - Anfänger-Themen 1
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
D Objekt Transparenter machen Java Basics - Anfänger-Themen 1
S OOP Frage: Methoden nur bei bestimmten Gegebenheiten aufrufbar machen? Java Basics - Anfänger-Themen 4
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
S BufferedImage heller/dunkler machen mit RescaleOp Java Basics - Anfänger-Themen 2
I OOP Wie kann ich diesen Code 'Objektorientiert machen' ? Java Basics - Anfänger-Themen 1
C Mit Java Musik machen? Java Basics - Anfänger-Themen 86
TheSorm String zu Methode machen Java Basics - Anfänger-Themen 1
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
O Zwei Methoden zueinander Thread-safe machen (Locken) Java Basics - Anfänger-Themen 9
Y Eingabe-Formular mit JSP dynamisch machen - j/n/wie? Java Basics - Anfänger-Themen 2
M Ausführen rückgängig machen Java Basics - Anfänger-Themen 2
K RGB Wert Heller machen (Dunkler machen klappt) Java Basics - Anfänger-Themen 2
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
T Text auf der Konsole farbig machen Java Basics - Anfänger-Themen 6
O Eigenen Addon-Loader machen? Java Basics - Anfänger-Themen 33
L Auf herunterfahren des PCs reagieren und Datensatz update machen Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben