Graphische Benutzeroberflächen mit Java Swing

Größe: px
Ab Seite anzeigen:

Download "Graphische Benutzeroberflächen mit Java Swing"

Transkript

1 Graphische Benutzeroberflächen mit Java Swing Teil 2 Dr. Beatrice Amrhein

2 Inhaltsverzeichnis 1 Spezielle Swing Komponenten JList, JComboBox, JTable, Adaptierbare Swing Komponenten Jlist JComboBox JTable JTable: Einfügen, Löschen und Sortieren von Zeilen JTable: CellEditor und CellRenderer Das Table Model Swing Text Komponenten Die Document Klasse StyledEditorKit StyleConstens, MutableAttributeSet Lesen und Schreiben von formatiertem Text Internationalisierung: Benutzeroberflächen für verschiedene Sprachen Properties Files Bundle Hierarchie Einlesen der Resource Bundles Benutzen der Bundle Strings Java Beans Das Java Beans Komponenten Modell Introspection Kommunikation, EventHandling Persistenz Layout Application Builder Tool Support How to be a good Bean Das BeanInfo File JavaFX Die Architektur JavaFX Life-Cycle Der JavaFX Scene Graph JavaFX Event-Handling

3 1 Spezielle Swing Komponenten JList, JComboBox, JTable, Adaptierbare Swing Komponenten Adaptierbare Swing Komponenten JTextField, JCheckBox, JColorChooser,... JLabel, JCheckBox, ImageIcon,... Editor Renderer Component Model Vector, Object[ ], LinkedList,... Die Swing Komponenten JTree, JComboBox, JTable, JList... sind beliebig adaptierbar. Sie benutzen einen Renderer, um sich darzustellen, ein Model zum Abspeichern der Daten, sowie einen Editor für das Verarbeiten von User- Eingaben. Alle diese Swing-Komponenten bieten Default Implementationen für Renderer, Editoren und Modelle. Falls nötig können diese ersetzt werden durch eigene, den speziellen Bedürfnissen angepasste Editoren, Renderer und Modelle. 2 Setzen von Renderer und Editor Renderer JList setcellrenderer(listcellrenderer) JTable setcellrenderer(tablecellrenderer) JTree setcellrenderer(treecellrenderer) Editor JTable JTree JComboBox setcelleditor(tablecelleditor) setcelleditor(treecelleditor) seteditor(comboboxeditor) Mit diesen Befehlen werden für Listen, Tabellen,... die Renderer und Editoren gesetzt. 3 Die Klassen JList, JTable, JTree und JComboBox bieten dem Entwickler die Möglichkeit, selber über das Aussehen und Editierverhalten zu entscheiden. So können zum Beispiel in einer Liste, einer Tabelle oder einem Tree nicht nur Texte sondern auch Bilder dargestellt werden. Anderseits können für die Zellen einer Tabelle auch Checkboxen oder Listen als Editoren benutzt werden. 3

4 Alle diese Klassen (JList, JTable,...) bieten eine Default-Implementation von Editoren und Renderern. Die Komponenten können daher (für einfache Beispiele) ohne grossen Aufwand verwendet werden. Default Cell Renderer TableCellRenderer gettablecellrenderercomponent() JLabel TreeCellRenderer gettreecellrenderercomponent() ListCellRenderer getlistcellrenderercomponent() DefaultTableCellRenderer DefaultListCellRenderer DefaultTreeCellRenderer Alle DefaultCellRenderer benutzen ein JLabel als Grundlage (Basisklasse). Durch Überschreiben der Methode get...cellrenderercomponent() wird bestimmt, wie die Komponente (abhängig vom Eingabewert und dem aktuellen Zustand) dargestellt werden soll. So kann zum Beispiel die selektierte Komponente ihre Hintergrund-Farbe ändern, es können verschiedene Bilder (Icons) zur Darstellung benutzt werden, usw. Falls nur der Wert einer Zelle formatiert oder verändert werden soll, genügt es, die Methode setvalue() zu überschreiben. 4 Default Editor AbstractCellEditor TableCellEditor gettablecelleditorcomponent() TreeCellEditor gettreecelleditorcomponent() DefaultCellEditor ComboBoxEditor BasicComboBoxEditor Mit den Methoden 5 Component gettablecelleditorcomponent( JTable table, Object value, boolean isselected, int row, int column) Component gettreecelleditorcomponent( Object value, boolean isselected boolean expanded, boolean leaf, int row) kann der Tabelle (dem Baum), abhängig vom Wert, der Zelle (dem Baum-Knoten), dem Status (isselected), der Position der Zelle,... ein anderes Editierverhalten zugeordnet werden. 4

5 1.2 Jlist JList Eine JList ist eine Komponente, aus welcher der Benutzer ein oder mehrere Elemente auswählen kann. Die Einträge können dynamisch verändert werden und sind in einer separaten Klasse (ListModel) abgespeichert. Ein registrierter ListSelectionListener kann die ausgewählten Items bearbeiten. 8 Aus einer JList kann jede Kombination von Elementen ausgewählt werden. Möglich sind die Einstellungen: MULTIPLE_INTERVAL_SELECTION (default) SINGLE_INTERVAL_SELECTION und SINGLE_SELECTION. Das Selection-Verhalten kann verändert werden durch den Befehl setselectionmode(int selectionmode) Der ListSelectionListener wird bei jeder Änderung der Auswahl in der Liste benachrichtigt. Seine Event-Handler-Methode ist: void valuechanged(listselectionevent e) Erzeugen einer JList // create data String[] items = {"cat","dog","bird","mouse"; JList list = new JList(items); add( new JScrollPane(list) ); Ein einfacher Array von Objekten (items) kann als Argument im Konstruktor der JList angegeben werden. Die Array Elemente dienen dann als (Anfangs-) Werte der Auswahl-Liste. Damit die Liste einen Scrollbar bekommt, muss JList in ein JScrollPane eingebettet werden. JList speichert seine Elemente in einem List-Model. 9 AbstractListModel ist eine abstrakte Klasse, sie implementiert Methoden für das Behandeln von ListData Events, aber keine Methoden für das Einfügen und Löschen von Elementen. DefaultListModel benutzt einen Vektor (java.util.vector) zum Speichern seiner Elemente. 5

6 Einfügen / Löschen von Elementen DefaultListModel model = new DefaultListModel(); // Einfügen am Ende model.addelement( item ); // oder an der 3. Stelle model.insertelementat( item, 2 ); // lösche die selektierten Elemente int[] sed = list.getselectedindices(); for(int i=sed.length-1; i>=0; i--) model.removeelementat(sed[i]); 10 model.addelement(object o) fügt ein neues Element am Ende der Liste ein. model.insertelementat(object o, int i) fügt ein neues Element an der Stelle i in die Liste ein. model.removeelementat(selected[i]) löscht das Element an der Stelle i. getselectedindices() gibt die Liste der ausgewählten Elemente (Indizes) zurück. Wir gehen beim Löschen rückwärts durch die Liste der Elemente, da sonst die Indizes der (hinteren) selektierten Elemente ungültig werden. private DefaultListModel model = new DefaultListModel(); private JList list = new MyList(); String[] items = { "Cat", "Dog", "Bird", "Mouse", "Bear" ; for (int i = 0; i < items.length; ++i) model.addelement(items[i]); setmodel(model); List Cell Renderer list.setcellrenderer(new MyCellRenderer()); class MyCellRenderer extends JLabel implements ListCellRenderer { public Component getlistcellrenderercomponent( JList list, Object value, int index, boolean isselected, boolean cellhasfocus ) { if( isselected ) {... if( cellhasfocus ) {... return this; 11 6

7 Ein ListCellRenderer zeichnet die verschiedenen List-Einträge normalerweise abhängig vom aktuellen Zustand. Im Beispiel hier wird aus dem List-Item vom Typ Integer eine Farbe berechnet, diese bestimmt die Vordergrundfarbe des Eintrags. Falls das Listen-Element selektiert wurde, werden die Vordergrund- und Hintergrund-Farbe sowie der Rahmen des Elementes neu gesetzt. // vgl. Beispiel unter ~amrhein/swing/beispiele/jlist/ class MyCellRenderer extends JLabel implements ListCellRenderer { EtchedBorder border = new EtchedBorder(); Font font = new Font("Dialog", Font.BOLD, 18); EtchedBorder blackline = new EtchedBorder(EtchedBorder.RAISED); public MyCellRenderer() { setopaque(true); public Component getlistcellrenderercomponent(jlist list, Object value, int index, boolean isselected, boolean cellhasfocus) { settext(value.tostring()); setfont(font); sethorizontalalignment(swingconstants.right); setforeground(new Color(((Integer) value).intvalue())); setbackground(color.white); setborder(border); if (isselected) { setforeground(color.white); setbackground(color.lightgray); if (cellhasfocus) { setbackground(color.gray); setborder(blackline); return this; 7

8 1.3 JComboBox JComboBox Eine JComboBox besteht aus einem Button (oder einem Textfeld) und einer Liste (JList). Aus einer Combo Box kann nur ein Element ausgewählt werden, dieses wird im Kopf angezeigt. nicht editierbar editierbar Die Klasse JComboBox hat zum grössten Teil die gleichen Eigenschaften wie die JList, da sie selber eine JList benutzt. 13 Erzeugen von ComboBoxen String[] animals = { "Dog", "Cat", "Bird", "Rabbit", "Pig" ; class MyComboBox extends JComboBox { MyComboBox(String items[]) { // insert all items super(items); // set selected item setselectedindex(2); // combobox is editable seteditable(true); Eine JComboBox kann, ähnlich wie eine JList, entweder durch eine Liste von Objekten oder durch ein Model 14 (ComboBoxModel) initialisiert werden. 8

9 JComboBox Das Selektieren eines Elementes erzeugt ein ActionEvent. class MyComboBox extends JComboBox { MyComboBox(String items[]) { super(items); addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { JComboBox cb =(JComboBox)e.getSource(); String s = (String)cb.getSelectedItem(); label.settext(s); ); 15 Im Unterschied zu der JList erzeugt die JComboBox ein ActionEvent, wenn ein Element aus der Liste ausgewählt wird. Darum kann an eine JComboBox ein ActionListener registriert werden. getselecteditem() gibt das ausgewählte Element (als Object) zurück. Editieren von Comboboxen Das Einfügen und Löschen von Elementen in Comboboxen geschieht durch die Methoden void removeitemat(int index) void insertitemat(object obj, int index) Falls getselectedindex() den Wert 1 zurückgibt, ist im Textfeld ein neues Element erzeugt worden, welches als neues Item in die Combobox eingefügt werden kann. 16 Da eine JComboBox unter anderem aus einer JList besteht, können bei der JComboBox genau wie aus der JList Elemente eingefügt, bzw. gelöscht werden. int index = cbox.getselectedindex(); if (index < 0) cbox.insertitemat(selection, 0); int selection = cbox.getselectedindex(); if (selection >= 0) cbox.removeitemat(selection); // falls das Element noch nicht // existiert, in Liste einfügen // selektiertes Element aus Liste // löschen 9

10 Combo Box Cell Renderer Zum Darstellen von komplexeren Einträgen kann auch für eine JComboBox der ListCellRenderer überschrieben werden. icon.setcolor(item.getcolor()); settext(item.getstring()); seticon(icon); if(isselected) setborder(redborder) else setborder(emptyborder); 17 Genau wie bei der JList ist es auch bei der JComboBox möglich, den CellRenderer zu überschreiben. Falls eine andere als die Default-Darstellung gewünscht wird, kann die Klasse ListCellRenderer überschrieben werden. class ColorRenderer extends JLabel implements ListCellRenderer { private static ColorIcon icon = new ColorIcon(); private Border redborder = BorderFactory.createLineBorder(Color.red, 2); private Border emptyborder = BorderFactory.createEmptyBorder(2, 2, 2, 2); public Component getlistcellrenderercomponent( JList list, Object value, int index, boolean isselected, boolean cellhasfocus) { Item item = (Item) value; icon.setcolor(item.getcolor()); settext(item.getstring()); seticon(icon); setborder(isselected? redborder : emptyborder); return this; // Rückgabewert ist der ColorRenderer Dieser ListCellRenderer kann dann für die JComboBox benutzt werden: JComboBox colorcombo = new JComboBox(); colorcombo.setrenderer(new ColorRenderer()); 10

11 Key Selection Manager Falls die Listen-Elemente der Combo Box von einem selber definierten Typ sind, funktioniert möglicherweise der Key Selection Manager nicht richtig. class MyItem { private Color color; private String string; public Item(Color c, String s) { color = c; string = s; public String tostring() { return string; 19 Im vorherigen Beispiel sind die Listen-Elemente keine Strings sondern Objekte vom Typ Item (Farbe und Text). Ohne Überschreiben der Methode tostring() in der Item-Klasse, gibt der Aufruf von tostring() auf das fünfte Element (magenta) einen String der Form Item@63cd51 zurück. Der KeyManager kann mit dieser Angabe nichts vernünftiges anfangen und kann darum auch nicht richtig funktionieren. public class CellRendererCBKS extends JFrame { Object[] items = { new MyItem(Color.white, "white"),... ; private JComboBox colorcombo = new JComboBox(items); class MyItem { private Color color; private String string; public MyItem(Color c, String s) { color = c; string = s; public Color getcolor() { return color; public String tostring() { return string; 11

12 1.4 JTable JTable Tabellen werden benutzt, um grosse Datenmengen anzuzeigen: JTable tb = new JTable(dataModel); JScrollPane scrollpane = new JScrollPane(tb); Ein TableModel ist zuständig für das Speichern der Tabellen-Einträge. 21 Das DefaultTableModel erhält eine Matrix von Daten (von Objects), sowie einen Vektor von Strings, welche als Header benutzt werden. Falls der Header-Vektor nicht gesetzt ist, setzt JTable eigene Spalten-Headers (A, B, C,...). Tabellen müssen in ein JScrollPane eingebunden werden, damit sie Scrollbars bekommen. DefaultTableModel Das DefaultTableModel definiert Methoden zum Einfügen, Löschen und Verändern von Elementen in der Tabelle: addcolumn, addrow, insertrow, removerow, setvalueat,... Das DefaultTableModel benutzt Vector Objekte zum Speichern der Tabellen Elemente. 22 Die Member-Variable datavector des DefaultTableModel ist ein Vektor von Vektoren vom Typ Object. Object[][] data = { {"one", "two", "three", "four", {"five", "six", "seven", "eight", {"1", "2", "3", "4", {"5", "6", "7", "8" ; String[] names = { "Column 1", "Column 2", "Column 3", "Column 4"; DefaultTableModel datamodel = new DefaultTableModel (data, names); 12

13 Ändern von Einträgen Die Werte in der Tabelle (im DefaultTable- Model) können vom User editiert werden oder durch die Methode setvalueat() vom Programm aus verändert werden. 23 Es gibt die Methode setvalueat() sowohl für JTable als auch für das DefaultTableModel. Allerdings haben sie nicht die gleiche Bedeutung, da bei verschobenen Spalten die Spalten-Nummer nicht mehr mit dem Modell Index übereinstimmt. Als eindeutiger Bezeichner der Spalten wird darum typischerweise der Spalten Name (Name, Raucher, Preis,...) verwendet. Die Anfangswerte der Tabelle werden hier über das TableModel im Konstruktor der Tabelle gesetzt. CustomModel cm = new CustomModel(data, columnnames); table = new JTable(cm); In der Tabelle kann auch bestimmt werden, ob eine Zelle editierbar oder nicht editierbar sein soll. So können einzelne Zeilen oder Spalten, aber auch Zellen mit speziellen Typen als nicht-editierbar gesetzt werden.definiert wird dies durch Überschreiben der Methode public boolean iscelleditable( int row, int col ) Die Spalten der Tabelle können verschoben werden Falls das Verschieben der einzelnen Spalten nicht erlaubt sein soll, können wir dies durch die JTableHeader Methode setreorderingallowed(false) erreichen. Den Table Header erhalten wir durch die Methode gettableheader(). 13

14 1.5 JTable: Einfügen, Löschen und Sortieren von Zeilen Einfügen von Zeilen Neue Zeilen werden eingefügt durch insertrow(row, rowdata); row ist die Zeilennummer der neuen Zeile, rowdata sind die einzufügenden Daten (z.b. vom Typ Object[] ). int row = table.getselectedrow(); Object[] rowdata = {"", new Boolean(false), new Integer(0); model.insertrow(row+1, rowdata); Das vollständige Beispiel: MyHotel.java Zu beachten ist, dass die eingefügten Elemente in rowdata die richtigen Typen haben müssen! JTable: CellEditor und CellRenderer CellEditor und CellRenderer Auch in Tabellen kann den einzelnen Spalten ein eigener Editor oder Renderer zugeordnet werden. Dies ist ein Beispiel einer Tabelle welche eine JComboBox, bzw eine JCheckbox als Editor/Renderer benutzt. Als Editor wird hier eine JComboBox benutzt: class RoomColumn extends JcomboBox { RoomColumn() { additem(new Integer(1)); additem(new Integer(2));... // Die Zahl soll zentriert sein JLabel lcr = (JLabel) getrenderer(); lcr.sethorizontalalignment(swingconstants.center); 26 14

15 Passwort geschützte Spalten Durch Überschreiben des DefaultCellEditor können Spalten als nicht editierbar gesetzt oder Passwort geschützt werden. class MyCellEditor extends DefaultCellEditor { public boolean iscelleditable(eventobject e) { return checkpassword(); 27 Es kann auch die Methode iscelleditable( int row, int column) des DefaultTableModels überschrieben werden. 1.7 Das Table Model TableModelListener Änderungen im TableModel führen zu Table- Model Events. public void tablechanged( TableModelEvent e ) { int c = e.getcolumn(); int r = table.getselectedrow(); if (... ) System.out.println(table.getValueAt(r,c)); 28 Durch Registrieren eines TableModelListeners kann auf jede Änderung in der Tabelle reagiert werden. 15

16 Oft existiert bereits ein Modell, welches noch andere Aufgaben zu erfüllen hat. 29 Damit die Daten nicht doppelt gespeichert werden (Redundanz, Konsistenz,...), wird mit Vorteil ein eigenes TableModel benutzt, welches als Schnittstelle zum ursprünglichen Modell dient. Ein Beispiel Custom Model CustomData ist eine Klasse mit den vier Attributen Datum, Zimmer, Name und Preis (mit get/set Methoden). Wir implementieren ein CustomModel, welches die Daten in einen Vektor von CustomData Objekten speichert: class CustomModel extends DefaultTableModel { Vector customdata = new Vector(); String[] customnames = { "Datum", "Zimmer", "Name", "Preis" ; Custom Table Model Das automatisch erzeugte Table Model ist nicht immer die beste Wahl. Ein eigenes Table Model muss mindestens die folgenden Methoden implementieren: Object getvalueat(int row, int column) int getrowcount() int getcolumncount() und falls das Model editierbar ist: void setvalueat(object o, int row, int column) public CustomModel() { super.setcolumnidentifiers(customnames); public void setvalueat(object o, int r, int c) { try{ CustomData data = ((CustomData)customData.get(r)); switch (c) { case 0 : data.setdatum((string) o); break; case 1 : data.setzimmer((integer) o); break;... catch (Exception e) {... this.firetabledatachanged(); public Object getvalueat(int r, int c) { CustomData data = ((CustomData)customData.get(r)); switch (c) { case 0 : return data.getdatum(); case 1 : return data.getzimmer();... public int getrowcount() { if( customdata!= null ) return customdata.size(); return 0; public int getcolumncount() { return customnames.length; 16

17 2 Swing Text Text Komponenten Swing Text-Komponenten (JTextPane, JEditorPane) können verschiedenste Fonts, Styles und sogar Bilder enthalten. Gewisse Swing Text-Komponenten können auch HTML-Code verstehen und darum auch Web-Pages korrekt anzeigen. Der ScreenShot auf der Folie sieht (fast) aus wie ein Web-Browser, ist aber ein einfaches Swing JEdiorPane, welches HTML-Code einliest, auswertet und anzeigt. Vgl. Beispiel EditorPane unter ~amrhein/swing/beispiele/textcomponents Text-Komponenten JComponent JTextComponent JTextArea JTextField JEditorPane JPasswordField JTextPane Verwendung von verschiedenen Farben/Fonts Einbinden von Graphik Unterstützung von Undo, Drag and Drop Clipboard-Operationen (cut, copy, paste) Verschiedene Text-Richtungen (left-right, right-left, top-down, buttom-up) Unterstützung von Schreiben in Files (Lesen von Files) (read/write) Die Text Komponenten JEditorPane und JTextPane können Texte mit verschiedenen Styles darstellen. JEditorPane kann die Formate Plain, HTML und RTF bearbeiten. JTextPane wird benutzt, um Texte in verschiedenen Styles und Bilder darzustellen (JTextPane benutzt ein StyledEditorKit). Zum Thema Lesen und Schreiben von Files vgl. auch Beispiel SimpleEdit.java unter ~amrhein/swing/beispiele/textcomponents 2.1 Die Document Klasse Document -> Model im MVC Pattern View -> View im MVC Pattern 17

18 2.2 StyledEditorKit Setzen von Farben, Fonts, Styles Das Ändern von Text-Styles ist sehr einfach mit dem StyledEditorKit. static class StyledEditorKit.BoldAction Setzen/Löschen des Bold-Attributs static class StyledEditorKit.FontSizeAction Setzen der Font Grösse static class StyledEditorKit.ForegroundAction Setzen der Vordergrund-Farbe static class StyledEditorKit.ItalicAction Setzen/Löschen des Italic-Attributs static class StyledEditorKit.UnderlineAction Setzen/Löschen des Underline-Attributs 34 Das StyledEditorKit stellt verschiedene Klassen zur Verfügung, die eine (minimale) Anzahl von Befehlen zum Editieren von Texten mit Farbe und Fonts enthalten. Setzen von Farben, Fonts, Styles boldbutton <<ActionListener>> addactionlistener StyledEditorKit.... actionperformed() import javax.swing.text.*; stylebold = new StyledEditorKit.BoldAction(); boldbutton.addactionlistener( stylebold ); yellowbutton.addactionlistener( new StyledEditorKit.ForegroundAction( "yellow", Color.yellow ) ); 35 Für das Setzen von Farben, Fonts und Styles (bold, italic,...) in einem selektierten Text, können wir das StyleEditorKit benutzen. 18

19 2.3 StyleConstens, StyleConstants MutableAttributeSet Die Klasse StyleConstants setzt den aktuell zu benutzenden Style für den selektierten oder für neu eingefügten Text. // set the new style to bold-italic, not underlined MutableAttributeSet attr = new SimpleAttributeSet(); StyleConstants.setBold(attr, true); StyleConstants.setUnderline(attr, false); StyleConstants.setItalic(attr, true); textarea.setcharacterattributes(attr, false); Für (globale) Style-Definitionen und Änderungen benutzen wir 36 die Klasse StyleConstants. setcharacterattributes(attr, false) (er-)setzt die Attribute für den (selektierten) Textbereich. Durch das Argument false wird bestimmt, dass andere ev. vorher gesetzte Attribute (Font, Schriftfarbe,...) erhalten bleiben sollen. StyleConstants Umgekehrt kann auch der verwendete Schrift- Typ aus dem Document abgefragt werden. Falls p die aktuelle Cursor-Position im Text-Dokument ist, gibt AttributeSet a = doc.getcharacterelement(p).getattributes(); String name = StyleConstants.getFontFamily(a); int size = StyleConstants.getFontSize(a); Color color = StyleConstants.getForeground(a); den verwendeten Font, die Font-Grösse und die Farbe zurück. Ein vollständiges Beispiel finden Sie unter ~amrhein/swing/beispiele/textcomponents Falls das benutzte Document verschiedene Styles unterstützt (wie zum Beispiel das DefaultStyledDocument), kann mit getattributes das Attribute Set abgefragt werden. private void showattributes(int p) { Element e = doc.getcharacterelement(p); AttributeSet a = e.getattributes(); 37 boolean b = StyleConstants.isBold(a); // bold gesetzt? if (boldbutton.isselected()!= b) boldbutton.setselected(b); Die aktuelle Cursor-Position erhalten wir zum Beispiel aus dem CaretEvent mit public void caretupdate(caretevent e) { int p = e.getdot(); showattributes(p); 19

20 2.4 Lesen und Schreiben von formatiertem Text Read/Write (als RTF) RTFEditorKit ekit = new RTFEditorKit(); DefaultStyledDocument doc = new DefaultStyledDocument(); textarea.seteditorkit(ekit); textarea.setdocument(doc); private void savefile(file f) { try { // create new file, if necessary f.createnewfile(); FileOutputStream out = new FileOutputStream(f); ekit.write(out, doc, 0, doc.getlength()); out.close(); catch (Exception e) { Das Lesen und Schreiben von formatiertem Text wird unterstützt vom RTFEditorKit. private void readfile(file f) { if (!f.exists()) return; try { doc.remove(0, doc.getlength()); FileInputStream fin = new FileInputStream(f); ekit.read(fin, doc, 0); fin.close(); catch (Exception e) {... Ein vollständiges Beispiel befindet sich unter ~amrhein/swing/beispiele/textcomponents/editreadwrite.java 20

21 3 Internationalisierung: Benutzeroberflächen für verschiedene Sprachen Wenn eine Benutzeroberfläche in verschiedene Sprachen verfügbar sein soll, müssen alle Textelemente (Beschriftungen, Hilfetexte, Fehlermeldungen,...) vom GUI-Source-Code separiert werden, üblicherweise jede Sprache in ein separates Properties File. 3.1 Properties Files Die Texte werden nach Sprache getrennt in ein File ( *.properties) ausgelagert. Die Properties Files werden durch entsprechende Kürzel bezeichnet: _en _US wäre ein Properties-File für US-Englische Texte, _de _ CH für Deutsch-Schweizer Vorgehen: Texte,... Resource Files Oft wird nicht nach Ländern sondern nur nach Sprachen aufgeteilt, dann fällt das Länder-Kürzel weg. Für jede angebotene Sprache ein Resource File (Message Bundle) MessageBundle_en.properties File = File Open = Open Cut_selection = Cut selection Copy_selection = Copy selection Undo_Edit = Undo Edit... Message Bundle deutsch Das entsprechende File für die deutschen Texte: 42 MessageBundle_de.properties File = Datei Open = Öffnen Cut_selection = Selektierten Text ausschneiden Copy_selection = Selektierten Text kopieren Undo_Edit = Eingabe rückgängig machen... Bundle Hierarchie 3.2Ein Bundle Properties Hierarchie File wird nach folgender Priorität ausgewält: Msg.properties Msg_en.properties Msg_de.properties 43 Falls ein Properties File nicht existiert (oder nicht gefunden wird), wird das in der Hierarchie nächst höhere Message Properties File gewählt. Msg_en_US.properties Msg_de_CH.properties Msg_de_DE.properties 44 21

22 3.3 Einlesen der Resource Bundles In Java werden diese Message Bundles mit Hilfe der Klasse ResourceBundle eingelesen. Abhängig von der gesetzten Sprache und dem gewählten Ländercode wird das richtige Bundle eingelesen. Oft wird eine default Sprache, bzw. ein default Bundle gewählt, für den Fall dass für die gewählte Sprache kein Properties File verfügbar ist. Um die benutzte Sprache zur Laufzeit ändern zu können, braucht es eine Klasse MyBundle, welche wie folgt aussieht: import java.util.*; public class MyBundle { // default message bundle public static ResourceBundle bundle = ResourceBundle.getBundle("MessageBundle"); // load message bundle with given language MyBundle(String language) { try { bundle = ResourceBundle.getBundle( "MessageBundle", new Locale(language)); catch (MissingResourceException e) { catch (NullPointerException e) { // load message bundle with given language and country MyBundle(String language, String country) { try { bundle = ResourceBundle.getBundle("MessageBundle", new Locale(language,country)); catch (MissingResourceException e) { catch (NullPointerException e) { 3.4 Benutzen der Bundle Strings Im Java Source Code werden alle benutzten Strings durch die entsprechenden Texte aus dem Resource Bundle messages_*.properties ersetzt. 22

23 4 Java Beans Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit Container Komponente1 Komponente 2 Komponente3 java.sun.com/products/javabeans/ Wie werden Komponenten erzeugt und verwendet? Wie werden Komponenten (in einem Container) zu einem sinnvollen Ganzen zusammengesetzt? Wie werden Komponenten erzeugt und verwendet? Wie werden Komponenten (in einem Container) zu einem sinnvollen Ganzen zusammengesetzt? 4.1 Das Java Beans Komponenten Modell 2 Das Beans-Komponentenmodell definiert die folgenden Eigenschaften: Introspection Kommunikation, Event Handling Persistence Layout Unterstützung von Application-Builder Tools Unterstützung von verteiltem Rechnen Introspection: Welche Dienste werden angeboten? Kommunikation, Event Handling: Wie können die Komponenten Informationen austauschen? Persistenz: Wie werden Komponenten abgespeichert? Layout: Wie sehen die Komponenten aus? Application-Builder Tools sollen die Komponenten wie eigene Komponenten verwenden können. 4.2 Introspection Introspection Introspection dient zum sichtbar machen aller von einer Komponente angebotenen Dienste: Introspection: - Welche Dienste Sichtbarmachen werden angeboten? der von der - Komponente Wie werden angebotenen sie benutzt? Funktionalität. Welche - Was Dienste ist der aktuelle werden Zustand angeboten? der Komponente Wie werden... sie benutzt? Zustand der Komponente Introspector: Sammelt alle verfügbaren Informationen zu einem Java-Bean. BeanInfo-File: mit expliziten Informationen über die angebotene Funktonalität. Anbieten von Zugriffsmethoden: get..., set... (Property Design Pattern) Reflection 4 23

24 4.3 Kommunikation, EventHandling Handling Eine Komponente, deren Zustand geändert hat, kann dies durch ein Event allen interessierten Parteien bekannt geben. Container Komponente 4 Komponente 2 Java Beans benutzen für die Kommunikation das normale Java Event Handling. Komponente1 Komponente3 Die interessierten Komponenten melden sich dazu als Event Listener bei der Event Source (dem Bean) an. 5 Persistenz 4.4 Persistenz Eine Komponente speichern (als Datei) und wieder einlesen. Dazu gehören: aktueller Zustand Verhältnis zu enthaltendem Container Verhältnis zu weiteren Komponenten... Wichtig für Application Builder Tools, welche diese Komponenten benutzen wollen Serialization Da (fast) alle von Java angebotenen Klassen serialisierbar sind (implements serializable) können Java Beans einfach diesen Mechanismus benutzen um sich abzuspeichern. 6 24

25 Layout 4.5 Layout Wie wird sie dargestellt? Wie wird sie angeordnet? Wie viel Platz braucht die Komponente? Platzierung innerhalb des Containers? seticon, setlayout, setpreferredsize, setmaximumsize,... Komponente Ein Bean muss wissen, wie es sich selber darstellt. Jede sichtbare Komponente (abgeleitet von JComponent) hat eine ganze Reihe von Methoden zur Verfügung, um zu beschreiben, wie sie aussehen soll: setbackground, setfont, setforeground, setmaximumsize, setminimumsize, setpreferredsize,... Im Container Application Builder Tool Support Application Builder Tool Support Graphisches Zusammenstellen der Komponenten durch Application Builder Tools: 8 Layout der Komponenten (Layout Support) Anzeigen der angebotenen Services (Introspection) Editieren der Komponenten (Defaultwerte, Setzen von Eigenschaften wie Grösse, Farbe, Font,...) Verbinden von verschiedenen Komponenten (Kommunikation, Events) Abspeichern der (veränderten) Komponenten 25

26 4.7 How to be a good Bean Damit eine Java Komponente ein Bean ist, müssen die folgenden Bedingungen erfüllt sein: 1. Sie braucht einen Konstruktor ohne Argumente (Default-Argumente für alle Attribute) 2. Sie muss serialisierbar sein (implements serializable) 3. Sie muss ein BeanInfo File anbieten. 4. Sie braucht ein Manifest File, in welchem aufgelistet ist, welche class-files Beans enthalten. 5. Sie muss in ein jar-file verpackt sein, in welchem neben allen class-files auch die zugehörigen Bilder (Icons), Sounds, Help-Texte und das Manifest-File gespeichert sind. 6. Sie sollte das Property Design Pattern einhalten (set-/get-methoden für Properties). 4.8 Das BeanInfo File Ein einfaches BeanInfo-File: public class MyButtonBeanInfo extends SimpleBeanInfo { public Image geticon(int iconkind) { Image img = loadimage("buttonicon.gif"); return img; Das BeanInfo File für das Bean MyButton muss (damit es richtig zugeordnet werden kann) denn Namen MyButtonBeanInfo.java haben. Jedes Bean benötigt ein BeanInfo-File. Dieses enthält Informationen über das JavaBean wie die vom Bean angebotenen Services (public Methoden), die vom Bean benutzten Icons, ev. Hilfstexte. Erzeugen des jar-files SimpleBeanInfo bietet ein einfaches BeanInfo, welches für alle Methoden des Beans eine "noop" Information liefert. Wenn der Introspector diese "noop" Information sieht, wendet er Reflection und das Property-Design Pattern an, um das Bean zu analysieren. MyBean.java MyBean.class MyBeanBeanInfo.java MyBeanBeanInfo.class Bilder,... mybean.jar manifest.mf Manifest-File: Name: MyBean.class Java-Bean: True Jar-File erzeugen durch: pro Bean einen Eintrag jar cfm mybean.jar manifest.mf MyBean.class MyBeanBeanInfo.class Beispiel eines Manifest Files: Manifest-Version: 1.0 Name: sunw/demo/quote/quotemonitor.class Java-Bean: True Name: sunw/demo/test/bridgetester.class Java-Bean: True Created-By: (Sun Microsystems Inc.) 26

27 5 JavaFX JavaFX ist ein Java Framework für um plattformübergreifende Rich Internet Applikationen zu entwickeln. Die JavaFX Laufzeitumgebung ist in der Version Java 7 Update 6 integriert. Sie kann aber auch separat heruntergeladen und installiert werden. JavaFX kann auf, Set-Top-Boxen, Desktop-Computern... zum Einsatz kommen und ist als Bestandteil der JRE- Umgebung in einigen Mobile-Geräten implementiert. JavaFX Anwendungen können als Standalone jar-files mit dem normalen java -jar Befehl oder vom Webserver heruntergeladen und auf einem Browser mit Java Web Start ausgeführt werden. Dies hat den Vorteil, dass das selbe GUI sowohl lokal als auch als Web-Applikation benutzt werden kann. Zusätzlich zu den bekannten Swing Features unterstützt JavaFX das Integrieren von Vektorgrafik sowie von Animationen, Audio- und Videodateien. 5.1 Die Architektur Das folgende Bild zeigt den Aufbau der JavaFX 2 Plattform. Die Quantum Toolkit verbindet die verschiedenen unterliegenden Teile (Prism, Glass Windowing Toolkit, Media- und Web-Engine) und stellt diese dem JavaFX API zur Verfügung. Quantum ist auch für die Synchronisation zwischen Event-Handling und Rendering zuständig. Prism ist eine neue Graphics-Engine und ist für das Rendering zuständig. Glass Windowing Toolkit verwaltet die Fenster und dient als Plattform-abhängige Schnittstelle zwischen JavaFX und dem Betriebssystem. Die Media Engine ist zuständig für das Einbinden von Filmen und Audio-Sequenzen.Die Web-Engine unterstützt das Einbinden von Web-Seiten (HTML5). Der JavaFX Scene Graph ist dann der Einstiegs-Punkt für jede JavaFX Applikation. Ein Scene Graph besteht aus einer Baum-Struktur von Knoten (Nodes), aufgebaut aus den sichtbaren Elemente des User Interfaces. Jeder Knoten hat eine id, eine Style-Class und eine Fläche (Position, Grösse). 27

28 5.2 JavaFX Life-Cycle Der Eintrittpunkt für jede JavaFX Applikation ist die die Klasse Application. Wenn ein Application Objekt (z.b. mit einem launch()-befehl) aufgerufen wird, dann wird: 1. Eine Instanz von Application erzeugt. 2. Deren init() Methode ausgeführt. 3. Dann die start(javafx.stage.stage) Methode ausgeführt 4. So lange gewartet, bis die Applikation sich beendet. Dies geschieht wenn die Methode Platform.exit() aufgerufen wird, oder wenn das letzte Fenster geschlossen wurde und das implicitexit Attribute von Platform den Wert true hat. 5. Am Ende wird die stop() Methode aufgerufen. Die start-methode ist abstract und muss überschrieben werden. Die Methoden init und stop haben bereits leere Default Implementationen. Die init-methode ist besonders dann sinnvoll, wenn grosse Datenmengen (über das Netz) geladen werden müssen. Die init-methode kann benutzt werden um mit einem einfachen Willkommens-Fenster anzuzeigen, dass die Applikation am Aufstarten ist. Die start-methode baut dann das eigentliche Applikations-Fenster auf. Eine einfache Beispiel Applikation public class JavaFXFirstExample extends Application public void start(stage primarystage) { Circle circ = new Circle(0, 0, 80, Color.CADETBLUE); Group group = new Group(circ); Label l = new Label("Hello World"); l.setfont(new Font(24)); StackPane root = new StackPane(); root.getchildren().add(group); root.getchildren().add(l); Scene scene = new Scene(root, 250, 250); primarystage.settitle("my First JavaFX Example"); primarystage.setscene(scene); primarystage.show(); Ähnlich wie bei einem Applet benötigen auch JavaFX Applikationen keine main-methode. 28

29 5.3 Der JavaFX Scene Graph Beim Aufrufen einer JavaFX Applikation wird ein Stage Objekt als Basis-Window erzeugt. In dieses muss ein Root Container (Scene) eingefügt werden, welcher die weiteren Komponenten oder Nodes verwaltet. Die Klasse Pane implementiert Basis-Methoden um das Layout aller Kind-Komponenten zu bestimmen (Abstände, Positionierung, Grösse,...). Falls das Layout nicht von Hand berechnet werden soll, bietet es sich darum an, ein Pane (BorderPane, FlowPane, GridPane, HBox, StackPane,...) als Container der weiteren Komponenten (Primitiv oder Container) zu verwenden. 5.4 JavaFX Event-Handling Ähnlich wie in Swing hat auch JavaFX verschiedene Event Typen, die abhängig von der User Eingabe und der Event Source erzeugt werden. Der Vorteil der neuen Event-Hierarchie liegt darin, dass ein Event-Handler mit der gleichen Methode auf die verschiedenen Events eines Teilbaums reagieren kann. 29

30 Event-Handler Beispiele: Action Event MenuItem menuitem = new MenuItem("Open"); menuitem.setonaction(new EventHandler<ActionEvent>() public void handle(actionevent e) { System.out.println("Opening File..."); ); Mouse Event Circle circle = new Circle(radius, Color.RED); circle.setonmouseentered(new EventHandler<MouseEvent>() { public void handle(mouseevent me) { System.out.println("Mouse entered"); ); oder node.addeventfilter(mouseevent.mouse_clicked, new EventHandler<MouseEvent>() { public void handle(mouseevent) { System.out.println("Mouse clicked"); ); Key Event TextField textbox = new TextField(); textbox.setonkeypressed(new EventHandler<KeyEvent>() { public void handle(keyevent ke) { System.out.println("Key Pressed: "); ); Zusätzlich bietet JavaFX auch Event-Handling für Touch-Screens oder intelligente Trackpads, welche verschiedenste Finger-Bewegungen unterscheiden können (Tippen, Rotieren, Scrollen, Zoomen,...). 30

Java Beans. http://java.sun.com/beans/

Java Beans. http://java.sun.com/beans/ Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit

Mehr

Swing Lernen am Code Teil 1

Swing Lernen am Code Teil 1 Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Drag and Drop (DnD) 1. Transfer-Mechanismus 2. Transfer-Support 3. Cursor-Symbole 4. Einführendes Beispiel 5. Komponenten DnD-fähig machen 6. Standard DnD-Verhalten ändern Folie 1 Lernziele Sie

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Das Model View Controller (MVC) Konzept

Das Model View Controller (MVC) Konzept Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2

Mehr

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

Java Beans. von Raoul Schneider

Java Beans. von Raoul Schneider Java Beans von Raoul Schneider Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder Was ist ein Bean? Ein Bean ist eine eigenständige, wiederverwendbare

Mehr

Swing :Komponenten I (Teil 2)

Swing :Komponenten I (Teil 2) l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Hilfe zur Dokumentenverwaltung

Hilfe zur Dokumentenverwaltung Hilfe zur Dokumentenverwaltung Die Dokumentenverwaltung von Coffee-CRM ist sehr mächtig und umfangreich, aber keine Angst die Bedienung ist kinderleicht. Im Gegensatz zur Foto Galeria können Dokumente

Mehr

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle Bedienungsanleitung Einsatzplanung Dieses Programm ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen, also Typ.xlm, deshalb werden Sie

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

KURZANLEITUNG CLOUD OBJECT STORAGE

KURZANLEITUNG CLOUD OBJECT STORAGE KURZANLEITUNG CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung... Seite 03 2. Anmelden am Cloud&Heat Dashboard... Seite 04 3. Anlegen eines Containers... Seite 05

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach

Mehr

Eigene Seiten erstellen

Eigene Seiten erstellen PhPepperShop Anleitung Datum: 3. Oktober 2013 Version: 2.1 Eigene Seiten erstellen Eigene Inhalte / CMS Glarotech GmbH Inhaltsverzeichnis Anleitung zur Erstellung von eigenen Inhalten/Links...3 1. Anmeldung

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Mit Google Chrome nach MIT App Inventor suchen. In den Suchergebnissen (siehe unten) auf

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Zugriff auf Cloud Object Storage mit Cyberduck...Seite 04 3. Neuen Container

Mehr

Design Patterns 2. Model-View-Controller in der Praxis

Design Patterns 2. Model-View-Controller in der Praxis Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

Ihr CMS für die eigene Facebook Page - 1

Ihr CMS für die eigene Facebook Page - 1 Ihr CMS für die eigene Facebook Page Installation und Einrichten eines CMS für die Betreuung einer oder mehrer zusätzlichen Seiten auf Ihrer Facebook Page. Anpassen der "index.php" Installieren Sie das

Mehr

Handbuch für Redakteure

Handbuch für Redakteure Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Trennen der Druck- und der Online-Version.. 4 Grunddaten ändern... 5 Weitere Artikel-eigenschaften...

Mehr

Erstellen eigener HTML Seiten auf ewon

Erstellen eigener HTML Seiten auf ewon ewon - Technical Note Nr. 010 Version 1.2 Erstellen eigener HTML Seiten auf ewon 30.08.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten 3. Funktionsaufbau und Konfiguration 3.1. Unterpunkt 1 3.2. Unterpunkt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet

Mehr

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Betreuer: Dipl.-Ing. A. Cemal Özlük Dipl.-Inf. Uwe Ryssel ALLGEMEINE

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse

Mehr

Schulung Marketing Engine Thema : Einrichtung der App

Schulung Marketing Engine Thema : Einrichtung der App Schulung Marketing Engine Thema : Einrichtung der App Videoanleitung : http://www.edge-cdn.net/video_885168?playerskin=48100 Marketing Engine Tool : App Paket : Basis / Premium Version 1.0-09.07.2015 1

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Programmieren lernen mit Groovy Graphische Oberflächen GUIs (Graphical User Interfaces)

Programmieren lernen mit Groovy Graphische Oberflächen GUIs (Graphical User Interfaces) Programmieren lernen mit Groovy Graphische Oberflächen GUIs (Graphical User Interfaces) Seite 1 GUI Beispiel Addierer : Code und erzeugte GUI groovy.swing.swingbuilder javax.swing.windowconstants swing

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Ein Projekt mit JavaFX erstellen

Ein Projekt mit JavaFX erstellen Ein Projekt mit JavaFX erstellen Das Projekt Es soll eine Umrechnung der Geschwindigkeit aus der Einheit m/s in die Einheit km/h erfolgen. Zu diesem Zweck wird ein einzeiliges Textfeld für die Eingabe

Mehr

Erzherzog Johann Jahr 2009

Erzherzog Johann Jahr 2009 Erzherzog Johann Jahr 2009 Der Erzherzog Johann Tag an der FH JOANNEUM in Kapfenberg Was wird zur Erstellung einer Webseite benötigt? Um eine Webseite zu erstellen, sind die folgenden Dinge nötig: 1. Ein

Mehr

Programmieren 2 07 JavaFX-Properties und Data-Binding

Programmieren 2 07 JavaFX-Properties und Data-Binding Programmieren 2 07 JavaFX-Properties und Data-Binding Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Letztes Mal haben wir Entwickler synchronisiert...

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16 Änderungen in Dokumentation und Software sind vorbehalten! Copyright Copyright 2005 COSA GmbH Alle Rechte vorbehalten.

Mehr

Seite 1. Datum einfügen

Seite 1. Datum einfügen Seite 1 Den Text zu schreiben ist einerseits Abhängig von der DIN 5008, an die man sich halten sollte. Andererseits sind Schriftart und Aussehen durch die schnell erkennbaren Symbole leicht zu gestalten.

Mehr

tentoinfinity Apps 1.0 EINFÜHRUNG

tentoinfinity Apps 1.0 EINFÜHRUNG tentoinfinity Apps Una Hilfe Inhalt Copyright 2013-2015 von tentoinfinity Apps. Alle Rechte vorbehalten. Inhalt der online-hilfe wurde zuletzt aktualisiert am August 6, 2015. Zusätzlicher Support Ressourcen

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

novapro Open Audittrail Report

novapro Open Audittrail Report novapro Open Audittrail Report Bedienungshandbuch 7001042001 Q11 Diese Beschreibung entspricht dem aktuellen Programmstand Version 1.0. Änderungen erfolgen zu jeder Zeit und ohne vorherige Ankündigung.

Mehr

Alerts für Microsoft CRM 4.0

Alerts für Microsoft CRM 4.0 Alerts für Microsoft CRM 4.0 Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle weiteren erwähnten

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Einleitung: Frontend Backend

Einleitung: Frontend Backend Die Internetseite des LSW Deutschland e.v. hat ein neues Gesicht bekommen. Ab dem 01.01.2012 ist sie in Form eines Content Management Systems (CMS) im Netz. Einleitung: Die Grundlage für die Neuprogrammierung

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

NTT DATA Helpdesk Benutzerhandbuch

NTT DATA Helpdesk Benutzerhandbuch NTT DATA Helpdesk Benutzerhandbuch Inhaltsverzeichnis 1 Login... 2 2 Helpdesk... 3 2.1 Homepage... 3 2.1.1 Ticketauswahl... 4 2.1.2 Tabellenvoreinstellungen... 4 2.1.3 Berichte, Auswahl der Einträge in

Mehr

Handbuch ZfEditor Stand 24.08.2012

Handbuch ZfEditor Stand 24.08.2012 Handbuch ZfEditor Stand 24.08.2012 Inhaltsverzeichnis Einführung... 1 Ansprechpartner... 1 Installation und Update... 1 Installation... 1 Update... 2 Bedienung des ZfEditors... 2 Aufruf... 2 Auswahl Gemeinde,

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Struts Code Peaces Element Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Allgemeines Autor: Sascha Wolski Sebastian Hennebrüder

Mehr

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Veröffentlicht Januar 2009 Copyright 2009 Helmut Schottmüller Inhaltsverzeichnis 1.

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Apartment App. Web Style Guide

Apartment App. Web Style Guide Apartment App Web Style Guide Login Zum Anmelden müssen Sie zu der App URL noch /typo3 hinzufügen. Sie sollten dann dieses Anmeldeformular sehen: Geben Sie hier Ihren Benutzernamen und das Passwort ein

Mehr

Schiller-Gymnasium Hof 20.12.2004

Schiller-Gymnasium Hof 20.12.2004 Erstellen eines HTML-Dokumentes Zum Erstellen einer Homepage benötigen wir lediglich einen Editor. Zum Ansehen der fertigen Site benötigen wir wir natürlich auch einen Browser, z.b. Firefox oder Netscape

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

MetaQuotes Empfehlungen zum Gebrauch von

MetaQuotes Empfehlungen zum Gebrauch von MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden

Mehr

HTML Programmierung. Aufgaben

HTML Programmierung. Aufgaben HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1 Beispiel Shop-Eintrag Ladenlokal & Online-Shop. Als Händler haben Sie beim Shop-Verzeichnis wir-lieben-shops.de die Möglichkeit einen oder mehrere Shop- Einträge zu erstellen. Es gibt 3 verschiedene Typen

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Java Projekt: Tic Tac Toe + GUI

Java Projekt: Tic Tac Toe + GUI Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel

Mehr

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische

Mehr

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Die Textvorlagen in Microsoft WORD und LibreOffice Writer Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag

Mehr

Durchführung der Datenübernahme nach Reisekosten 2011

Durchführung der Datenübernahme nach Reisekosten 2011 Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen

Mehr

Installationsanleitung SSL Zertifikat

Installationsanleitung SSL Zertifikat Installationsanleitung SSL Zertifikat HRM Systems AG, Technikumstrasse 82, Postfach, CH-8401 Winterthur, Telefon +41 52 269 17 47, www.hrm-systems.ch Inhaltsverzeichnis 1. Einleitung 3 2. Austausch Zertifikat

Mehr