diff --git a/src/EierUhrKomponente/EierUhr.java b/src/EierUhrKomponente/EierUhr.java new file mode 100755 index 0000000..1277ef5 --- /dev/null +++ b/src/EierUhrKomponente/EierUhr.java @@ -0,0 +1,69 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package EierUhrKomponente; + +import java.awt.Graphics; +import java.net.Socket; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.logging.Logger; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.WindowConstants; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.UIManager; +import ohmlogger.OhmLogger; + +/** + * Builder Class + * @author le + */ +public class EierUhr extends JComponent +{ + private static Logger lg = OhmLogger.getLogger(); + private EierUhrView view; + private EierUhrModel model; + private EierUhrController ctrl; + private CopyOnWriteArrayList listenerListe; + + + + public EierUhr() + { + this.view = new EierUhrView(this); + this.model = new EierUhrModel(); + this.ctrl = new EierUhrController(view, model, this); + this.listenerListe = new CopyOnWriteArrayList(); + + + } + public void paintComponent(Graphics g) + { + view.paintComponent(g); + } + public void Start(int zahl) + { + ctrl.start(zahl); + } + public int getZahl() + { + return ctrl.getZahl(); + } + + public void fireEierUhrEvent(EierUhrEvent evt) + { + listenerListe.forEach(listener -> listener.timeIsOver(evt)); + } + public synchronized void addEierUhrListener(EierUhrListener listener) + { + listenerListe.add(listener); + } + public synchronized void removeEierUhrListener(EierUhrListener listener) + { + listenerListe.remove(listener); + } +} diff --git a/src/EierUhrKomponente/EierUhrBeanInfo.java b/src/EierUhrKomponente/EierUhrBeanInfo.java new file mode 100644 index 0000000..e24e748 --- /dev/null +++ b/src/EierUhrKomponente/EierUhrBeanInfo.java @@ -0,0 +1,297 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package EierUhrKomponente; + +import java.beans.*; + +/** + * + * @author chris + */ +public class EierUhrBeanInfo extends SimpleBeanInfo +{ + + // Bean descriptor//GEN-FIRST:BeanDescriptor + /*lazy BeanDescriptor*/ + private static BeanDescriptor getBdescriptor(){ + BeanDescriptor beanDescriptor = new BeanDescriptor ( EierUhrKomponente.EierUhr.class , null ); // NOI18N//GEN-HEADEREND:BeanDescriptor + // Here you can add code for customizing the BeanDescriptor. + + return beanDescriptor; }//GEN-LAST:BeanDescriptor + + + // Property identifiers//GEN-FIRST:Properties + private static final int PROPERTY_zahl = 0; + + // Property array + /*lazy PropertyDescriptor*/ + private static PropertyDescriptor[] getPdescriptor(){ + PropertyDescriptor[] properties = new PropertyDescriptor[1]; + + try { + properties[PROPERTY_zahl] = new PropertyDescriptor ( "zahl", EierUhrKomponente.EierUhr.class, "getZahl", null ); // NOI18N + } + catch(IntrospectionException e) { + e.printStackTrace(); + }//GEN-HEADEREND:Properties + // Here you can add code for customizing the properties array. + + return properties; }//GEN-LAST:Properties + + // EventSet identifiers//GEN-FIRST:Events + private static final int EVENT_eierUhrListener = 0; + private static final int EVENT_propertyChangeListener = 1; + private static final int EVENT_vetoableChangeListener = 2; + + // EventSet array + /*lazy EventSetDescriptor*/ + private static EventSetDescriptor[] getEdescriptor(){ + EventSetDescriptor[] eventSets = new EventSetDescriptor[3]; + + try { + eventSets[EVENT_eierUhrListener] = new EventSetDescriptor ( EierUhrKomponente.EierUhr.class, "eierUhrListener", EierUhrKomponente.EierUhrListener.class, new String[] {"timeIsOver"}, "addEierUhrListener", "removeEierUhrListener" ); // NOI18N + eventSets[EVENT_propertyChangeListener] = new EventSetDescriptor ( EierUhrKomponente.EierUhr.class, "propertyChangeListener", java.beans.PropertyChangeListener.class, new String[] {"propertyChange"}, "addPropertyChangeListener", "removePropertyChangeListener" ); // NOI18N + eventSets[EVENT_vetoableChangeListener] = new EventSetDescriptor ( EierUhrKomponente.EierUhr.class, "vetoableChangeListener", java.beans.VetoableChangeListener.class, new String[] {"vetoableChange"}, "addVetoableChangeListener", "removeVetoableChangeListener" ); // NOI18N + } + catch(IntrospectionException e) { + e.printStackTrace(); + }//GEN-HEADEREND:Events + // Here you can add code for customizing the event sets array. + + return eventSets; }//GEN-LAST:Events + + // Method identifiers//GEN-FIRST:Methods + private static final int METHOD_fireEierUhrEvent0 = 0; + private static final int METHOD_firePropertyChange1 = 1; + private static final int METHOD_firePropertyChange2 = 2; + private static final int METHOD_firePropertyChange3 = 3; + private static final int METHOD_firePropertyChange4 = 4; + private static final int METHOD_firePropertyChange5 = 5; + private static final int METHOD_firePropertyChange6 = 6; + private static final int METHOD_firePropertyChange7 = 7; + private static final int METHOD_firePropertyChange8 = 8; + private static final int METHOD_Start9 = 9; + + // Method array + /*lazy MethodDescriptor*/ + private static MethodDescriptor[] getMdescriptor(){ + MethodDescriptor[] methods = new MethodDescriptor[10]; + + try { + methods[METHOD_fireEierUhrEvent0] = new MethodDescriptor(EierUhrKomponente.EierUhr.class.getMethod("fireEierUhrEvent", new Class[] {EierUhrKomponente.EierUhrEvent.class})); // NOI18N + methods[METHOD_fireEierUhrEvent0].setDisplayName ( "" ); + methods[METHOD_firePropertyChange1] = new MethodDescriptor(java.awt.Component.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, byte.class, byte.class})); // NOI18N + methods[METHOD_firePropertyChange1].setDisplayName ( "" ); + methods[METHOD_firePropertyChange2] = new MethodDescriptor(java.awt.Component.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, short.class, short.class})); // NOI18N + methods[METHOD_firePropertyChange2].setDisplayName ( "" ); + methods[METHOD_firePropertyChange3] = new MethodDescriptor(java.awt.Component.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, long.class, long.class})); // NOI18N + methods[METHOD_firePropertyChange3].setDisplayName ( "" ); + methods[METHOD_firePropertyChange4] = new MethodDescriptor(java.awt.Component.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, float.class, float.class})); // NOI18N + methods[METHOD_firePropertyChange4].setDisplayName ( "" ); + methods[METHOD_firePropertyChange5] = new MethodDescriptor(java.awt.Component.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, double.class, double.class})); // NOI18N + methods[METHOD_firePropertyChange5].setDisplayName ( "" ); + methods[METHOD_firePropertyChange6] = new MethodDescriptor(javax.swing.JComponent.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, boolean.class, boolean.class})); // NOI18N + methods[METHOD_firePropertyChange6].setDisplayName ( "" ); + methods[METHOD_firePropertyChange7] = new MethodDescriptor(javax.swing.JComponent.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, int.class, int.class})); // NOI18N + methods[METHOD_firePropertyChange7].setDisplayName ( "" ); + methods[METHOD_firePropertyChange8] = new MethodDescriptor(javax.swing.JComponent.class.getMethod("firePropertyChange", new Class[] {java.lang.String.class, char.class, char.class})); // NOI18N + methods[METHOD_firePropertyChange8].setDisplayName ( "" ); + methods[METHOD_Start9] = new MethodDescriptor(EierUhrKomponente.EierUhr.class.getMethod("Start", new Class[] {int.class})); // NOI18N + methods[METHOD_Start9].setDisplayName ( "" ); + } + catch( Exception e) {}//GEN-HEADEREND:Methods + // Here you can add code for customizing the methods array. + + return methods; }//GEN-LAST:Methods + + private static java.awt.Image iconColor16 = null;//GEN-BEGIN:IconsDef + private static java.awt.Image iconColor32 = null; + private static java.awt.Image iconMono16 = null; + private static java.awt.Image iconMono32 = null;//GEN-END:IconsDef + private static String iconNameC16 = null;//GEN-BEGIN:Icons + private static String iconNameC32 = null; + private static String iconNameM16 = null; + private static String iconNameM32 = null;//GEN-END:Icons + + private static final int defaultPropertyIndex = -1;//GEN-BEGIN:Idx + private static final int defaultEventIndex = -1;//GEN-END:Idx + + +//GEN-FIRST:Superclass + // Here you can add code for customizing the Superclass BeanInfo. + +//GEN-LAST:Superclass + /** + * Gets the bean's BeanDescriptors. + * + * @return BeanDescriptor describing the editable properties of this bean. May + * return null if the information should be obtained by automatic analysis. + */ + @Override + public BeanDescriptor getBeanDescriptor() + { + return getBdescriptor(); + } + + /** + * Gets the bean's PropertyDescriptors. + * + * @return An array of PropertyDescriptors describing the editable properties + * supported by this bean. May return null if the information should be + * obtained by automatic analysis. + *

+ * If a property is indexed, then its entry in the result array will belong to + * the IndexedPropertyDescriptor subclass of PropertyDescriptor. A client of + * getPropertyDescriptors can use "instanceof" to check if a given + * PropertyDescriptor is an IndexedPropertyDescriptor. + */ + @Override + public PropertyDescriptor[] getPropertyDescriptors() + { + return getPdescriptor(); + } + + /** + * Gets the bean's EventSetDescriptors. + * + * @return An array of EventSetDescriptors describing the kinds of events + * fired by this bean. May return null if the information should be obtained + * by automatic analysis. + */ + @Override + public EventSetDescriptor[] getEventSetDescriptors() + { + return getEdescriptor(); + } + + /** + * Gets the bean's MethodDescriptors. + * + * @return An array of MethodDescriptors describing the methods implemented by + * this bean. May return null if the information should be obtained by + * automatic analysis. + */ + @Override + public MethodDescriptor[] getMethodDescriptors() + { + return getMdescriptor(); + } + + /** + * A bean may have a "default" property that is the property that will mostly + * commonly be initially chosen for update by human's who are customizing the + * bean. + * + * @return Index of default property in the PropertyDescriptor array returned + * by getPropertyDescriptors. + *

+ * Returns -1 if there is no default property. + */ + @Override + public int getDefaultPropertyIndex() + { + return defaultPropertyIndex; + } + + /** + * A bean may have a "default" event that is the event that will mostly + * commonly be used by human's when using the bean. + * + * @return Index of default event in the EventSetDescriptor array returned by + * getEventSetDescriptors. + *

+ * Returns -1 if there is no default event. + */ + @Override + public int getDefaultEventIndex() + { + return defaultEventIndex; + } + + /** + * This method returns an image object that can be used to represent the bean + * in toolboxes, toolbars, etc. Icon images will typically be GIFs, but may in + * future include other formats. + *

+ * Beans aren't required to provide icons and may return null from this + * method. + *

+ * There are four possible flavors of icons (16x16 color, 32x32 color, 16x16 + * mono, 32x32 mono). If a bean choses to only support a single icon we + * recommend supporting 16x16 color. + *

+ * We recommend that icons have a "transparent" background so they can be + * rendered onto an existing background. + * + * @param iconKind The kind of icon requested. This should be one of the + * constant values ICON_COLOR_16x16, ICON_COLOR_32x32, ICON_MONO_16x16, or + * ICON_MONO_32x32. + * @return An image object representing the requested icon. May return null if + * no suitable icon is available. + */ + @Override + public java.awt.Image getIcon(int iconKind) + { + switch (iconKind) + { + case ICON_COLOR_16x16: + if (iconNameC16 == null) + { + return null; + } + else + { + if (iconColor16 == null) + { + iconColor16 = loadImage(iconNameC16); + } + return iconColor16; + } + case ICON_COLOR_32x32: + if (iconNameC32 == null) + { + return null; + } + else + { + if (iconColor32 == null) + { + iconColor32 = loadImage(iconNameC32); + } + return iconColor32; + } + case ICON_MONO_16x16: + if (iconNameM16 == null) + { + return null; + } + else + { + if (iconMono16 == null) + { + iconMono16 = loadImage(iconNameM16); + } + return iconMono16; + } + case ICON_MONO_32x32: + if (iconNameM32 == null) + { + return null; + } + else + { + if (iconMono32 == null) + { + iconMono32 = loadImage(iconNameM32); + } + return iconMono32; + } + default: + return null; + } + } + +} diff --git a/src/EierUhrKomponente/EierUhrController.java b/src/EierUhrKomponente/EierUhrController.java new file mode 100644 index 0000000..2121907 --- /dev/null +++ b/src/EierUhrKomponente/EierUhrController.java @@ -0,0 +1,85 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package EierUhrKomponente; + +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.Flow; +import java.util.concurrent.Flow.Subscriber; +import java.util.logging.Logger; +import ohmlogger.OhmLogger; + +/** + * + * @author chris + */ +public class EierUhrController implements Flow.Subscriber +{ + private EierUhrView view; + private EierUhrModel model; + private EierUhr eierUhr; + private Flow.Subscription sub; + private static Logger lg = OhmLogger.getLogger(); + + public EierUhrController(EierUhrView view, EierUhrModel model, EierUhr eierUhr) + { + this.view = view; + this.model = model; + this.eierUhr = eierUhr; + + addSubscription(); + } + public void setZahl(int zahl) + { + view.setZahl(zahl); + } + public int getZahl() + { + return view.getZahl(); + } + + public void start(int zahl) + { + lg.info("Controller Start"); + model.initZahl(zahl); + } + + private void addSubscription() + { + model.addSubscription(this); + } + + @Override + public void onSubscribe(Flow.Subscription subscription) + { + this.sub = subscription; + sub.request(1); + } + + @Override + public void onNext(Integer item) + { + int zahl = view.getZahl(); + sub.request(1); + view.setZahl(item); + eierUhr.firePropertyChange("zahl", zahl, view.getZahl()); + + if(item == 0) + { + eierUhr.fireEierUhrEvent(new EierUhrEvent(this)); + } + } + + @Override + public void onError(Throwable thrwbl) + { + } + + @Override + public void onComplete() + { + } +} diff --git a/src/EierUhrKomponente/EierUhrEvent.java b/src/EierUhrKomponente/EierUhrEvent.java new file mode 100644 index 0000000..18aeeb5 --- /dev/null +++ b/src/EierUhrKomponente/EierUhrEvent.java @@ -0,0 +1,25 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package EierUhrKomponente; + +import java.util.EventObject; +import java.util.logging.Logger; +import ohmlogger.OhmLogger; + +/** + * + * @author chris + */ +public class EierUhrEvent extends EventObject +{ + private static Logger lg = OhmLogger.getLogger(); + public EierUhrEvent(Object source) + { + super(source); + lg.info("event"); + } +} diff --git a/src/EierUhrKomponente/EierUhrListener.java b/src/EierUhrKomponente/EierUhrListener.java new file mode 100644 index 0000000..eef422a --- /dev/null +++ b/src/EierUhrKomponente/EierUhrListener.java @@ -0,0 +1,19 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package EierUhrKomponente; + +import java.util.EventListener; + +/** + * + * @author chris + */ +public interface EierUhrListener extends EventListener +{ + public void timeIsOver(EierUhrEvent evt); + +} diff --git a/src/EierUhrKomponente/EierUhrModel.java b/src/EierUhrKomponente/EierUhrModel.java new file mode 100644 index 0000000..e2c281d --- /dev/null +++ b/src/EierUhrKomponente/EierUhrModel.java @@ -0,0 +1,92 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package EierUhrKomponente; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Flow; +import java.util.concurrent.SubmissionPublisher; +import java.util.logging.Level; +import java.util.logging.Logger; +import ohmlogger.OhmLogger; + +/** + * + * @author chris + */ +public class EierUhrModel implements Runnable +{ + private int zahl; + private ExecutorService exe; + private boolean laufend; + private static Logger lg = OhmLogger.getLogger(); + private SubmissionPublisher ipublisher; + + public EierUhrModel() + { + zahl = 100; + exe = Executors.newSingleThreadExecutor(); + ipublisher = new SubmissionPublisher<>(); + + } + + void start() + { + exe.submit(this); + laufend = true; + lg.info("Start Model"); + + } + + public void initZahl(int zahl) + { + this.zahl = zahl; + lg.info("Reset Zahl to: " + Integer.toString(zahl)); + start(); + } + + @Override + public void run() + { + while(laufend) + { + lg.info(Integer.toString(zahl)); + if(zahl > 0) + { + + try + { + Thread.sleep(1000); + zahl -= 1; + ipublisher.submit(zahl); + } + catch (InterruptedException ex) + { + lg.info("error: "); + Logger.getLogger(EierUhrModel.class.getName()).log(Level.SEVERE, null, ex); + } + } + else + { + lg.info("0 erreicht"); + stop(); + } + } + + } + public void addSubscription(Flow.Subscriber subscriber) + { + ipublisher.subscribe(subscriber); + } + public void stop() + { + laufend = false; + } + + + +} diff --git a/src/EierUhrKomponente/EierUhrView.java b/src/EierUhrKomponente/EierUhrView.java new file mode 100644 index 0000000..790d824 --- /dev/null +++ b/src/EierUhrKomponente/EierUhrView.java @@ -0,0 +1,83 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package EierUhrKomponente; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.geom.Ellipse2D; +import java.util.logging.Logger; +import javax.swing.JComponent; +import ohmlogger.OhmLogger; + +/** + * + * @author chris + */ +public class EierUhrView extends JComponent +{ + private static Logger lg = OhmLogger.getLogger(); + private int zahl; + private Ellipse2D.Float rand; + private int DICKE; + private BasicStroke pinsel; + private EierUhr eierUhr; + + public EierUhrView(EierUhr eierUhr) + { + zahl = 99; + rand = new Ellipse2D.Float(); + DICKE = 4; + pinsel = new BasicStroke(DICKE); + this.eierUhr = eierUhr; + + } + + @Override + public void paintComponent(Graphics g) + { + super.paintComponents(g); + Graphics2D g2 = (Graphics2D) g; + + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + + + int breite = eierUhr.getWidth() -1; + int hoehe = eierUhr.getHeight() -1; + + int radius = -DICKE/2 + Math.min(breite, hoehe) / 2; + float x = breite/2 - radius; + float y = hoehe/2 - radius; + rand.setFrame(x, y, 1.5*radius, 2*radius); + g2.setStroke(pinsel); +// g2.setPaint(eierUhr.getParent().getBackground()); +// g2.fill(rand); + float font = (g2.getFont().getSize()*DICKE); + g2.setPaint(Color.BLACK); + g2.setFont(g2.getFont().deriveFont(font)); + g2.drawString(Integer.toString(zahl), (float) (x+radius*0.75-font/2), y+radius+font/2); + g2.draw(rand); + + lg.info("paint" + Integer.toString(zahl)); + + + } + public int getZahl() + { + return this.zahl; + } + public void setZahl(int zahl) + { + this.zahl = zahl; + eierUhr.repaint(); + } + + +} diff --git a/src/graphicChat/Start.java b/src/graphicChat/Start.java deleted file mode 100755 index e008cfc..0000000 --- a/src/graphicChat/Start.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -package graphicChat; - -import javax.swing.JFrame; -import javax.swing.WindowConstants; -import graphicChat.controller.CommandConnect; -import graphicChat.controller.CommandSend; -import graphicChat.controller.GraphicsController; -import graphicChat.controller.ReceiveAdapter; -import graphicChat.view.ChatView; -import graphicChat.model.ChatModel; -import javax.swing.JOptionPane; -import javax.swing.UIManager; -/** - * Builder Class - * @author le - */ -public class Start -{ - public Start() - { - JFrame frm = new JFrame(); - frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - - ChatView view = new ChatView(); - ChatModel model = new ChatModel(); - view.getGrafikView1().setModel(model); - - GraphicsController controller = new GraphicsController(view.getGrafikView1(), model); - controller.registerEvents(); - - CommandConnect cmdConnect = new CommandConnect(view, model); - cmdConnect.registerEvents(); - - CommandSend cmdSend = new CommandSend(view, model); - cmdSend.registerEvents(); - - ReceiveAdapter recAdapter = new ReceiveAdapter(view, model); - recAdapter.subscribe(); - - view.setVisible(true); - view.setTitle("Chat"); - - view.setSize(800, 600); - view.setVisible(true); - - } - - /** - * @param args the command line arguments - */ - public static void main(String[] args) - { - try - { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } - catch (Exception ex) - { - JOptionPane.showMessageDialog(null, ex.toString()); - } - new Start(); - new Start(); - } -} diff --git a/src/test/Start.java b/src/test/Start.java new file mode 100644 index 0000000..960a07d --- /dev/null +++ b/src/test/Start.java @@ -0,0 +1,51 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package test; + +import EierUhrKomponente.EierUhr; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.UIManager; +import javax.swing.WindowConstants; + +/** + * + * @author chris + */ +public class Start +{ + public Start() + { + JFrame frm = new JFrame(); + frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + + View view = new View(); +// Model model = new Model(); +// Controller ctrl = new Controller(view, model); + + view.setTitle("Test"); + view.setSize(800, 600); + view.setVisible(true); + + } + + /** + * @param args the command line arguments + */ + public static void main(String[] args) + { + try + { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } + catch (Exception ex) + { + JOptionPane.showMessageDialog(null, ex.toString()); + } + new Start(); + } +} diff --git a/src/test/View.form b/src/test/View.form new file mode 100644 index 0000000..ee7c969 --- /dev/null +++ b/src/test/View.form @@ -0,0 +1,82 @@ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/View.java b/src/test/View.java new file mode 100644 index 0000000..c5b36e3 --- /dev/null +++ b/src/test/View.java @@ -0,0 +1,166 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package test; + +/** + * + * @author chris + */ +public class View extends javax.swing.JFrame +{ + + /** + * Creates new form View + */ + public View() + { + initComponents(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() + { + + jLabel1 = new javax.swing.JLabel(); + jPanel1 = new javax.swing.JPanel(); + eierUhr1 = new EierUhrKomponente.EierUhr(); + jButton1 = new javax.swing.JButton(); + jProgressBar1 = new javax.swing.JProgressBar(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + jLabel1.setText("Ich bin nicht abgelaufen"); + getContentPane().add(jLabel1, java.awt.BorderLayout.PAGE_START); + + jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.LINE_AXIS)); + + eierUhr1.addEierUhrListener(new EierUhrKomponente.EierUhrListener() + { + public void timeIsOver(EierUhrKomponente.EierUhrEvent evt) + { + eierUhr1TimeIsOver(evt); + } + }); + eierUhr1.addPropertyChangeListener(new java.beans.PropertyChangeListener() + { + public void propertyChange(java.beans.PropertyChangeEvent evt) + { + eierUhr1PropertyChange(evt); + eierUhr1PropertyChange1(evt); + } + }); + jPanel1.add(eierUhr1); + + getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); + + jButton1.setText("Start"); + jButton1.addMouseListener(new java.awt.event.MouseAdapter() + { + public void mousePressed(java.awt.event.MouseEvent evt) + { + jButton1MousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) + { + jButton1MouseReleased(evt); + } + }); + getContentPane().add(jButton1, java.awt.BorderLayout.LINE_END); + + jProgressBar1.setMaximum(3); + getContentPane().add(jProgressBar1, java.awt.BorderLayout.PAGE_END); + + pack(); + }// //GEN-END:initComponents + + private void jButton1MouseReleased(java.awt.event.MouseEvent evt)//GEN-FIRST:event_jButton1MouseReleased + {//GEN-HEADEREND:event_jButton1MouseReleased + + }//GEN-LAST:event_jButton1MouseReleased + + private void jButton1MousePressed(java.awt.event.MouseEvent evt)//GEN-FIRST:event_jButton1MousePressed + {//GEN-HEADEREND:event_jButton1MousePressed + eierUhr1.Start(3); + }//GEN-LAST:event_jButton1MousePressed + + private void eierUhr1PropertyChange(java.beans.PropertyChangeEvent evt)//GEN-FIRST:event_eierUhr1PropertyChange + {//GEN-HEADEREND:event_eierUhr1PropertyChange + + }//GEN-LAST:event_eierUhr1PropertyChange + + private void eierUhr1TimeIsOver(EierUhrKomponente.EierUhrEvent evt)//GEN-FIRST:event_eierUhr1TimeIsOver + {//GEN-HEADEREND:event_eierUhr1TimeIsOver + jLabel1.setText("Zeit ist abgelaufen"); + }//GEN-LAST:event_eierUhr1TimeIsOver + + private void eierUhr1PropertyChange1(java.beans.PropertyChangeEvent evt)//GEN-FIRST:event_eierUhr1PropertyChange1 + {//GEN-HEADEREND:event_eierUhr1PropertyChange1 + jProgressBar1.setValue(eierUhr1.getZahl()); + }//GEN-LAST:event_eierUhr1PropertyChange1 + + /** + * @param args the command line arguments + */ + public static void main(String args[]) + { + /* Set the Nimbus look and feel */ + // + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + */ + try + { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) + { + if ("Nimbus".equals(info.getName())) + { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } + catch (ClassNotFoundException ex) + { + java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + catch (InstantiationException ex) + { + java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + catch (IllegalAccessException ex) + { + java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + catch (javax.swing.UnsupportedLookAndFeelException ex) + { + java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() + { + public void run() + { + new View().setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private EierUhrKomponente.EierUhr eierUhr1; + private javax.swing.JButton jButton1; + private javax.swing.JLabel jLabel1; + private javax.swing.JPanel jPanel1; + private javax.swing.JProgressBar jProgressBar1; + // End of variables declaration//GEN-END:variables +}