diff --git a/UML.dia b/UML.dia index ff72c97fbfdcdafea574de3752e99e25ce12d437..6f33a4c400cee424817c34093c0c7f55ad92a964 100644 Binary files a/UML.dia and b/UML.dia differ diff --git a/src/tec/letsgoing/ardublock/simulator/Simulator.java b/src/tec/letsgoing/ardublock/simulator/Simulator.java index 81753958b25aaf0d26e8982aa37e6eb1f42ea9aa..9a75e78f2d740bd5703175035cf275bc56b92550 100644 --- a/src/tec/letsgoing/ardublock/simulator/Simulator.java +++ b/src/tec/letsgoing/ardublock/simulator/Simulator.java @@ -179,16 +179,19 @@ public class Simulator implements Runnable, ActionListener{ Point locationWindow = gui.getLocation(); - int WidthWindow = ((int)((gui.getWidth() * 1.0975) - 13.307)); - int HeightWindow = ((int)((gui.getHeight() * 1.2709) - 174.77)); +// int widthWindow = ((int)((gui.getWidth() * 1.0975) - 13.307)); +// int heightWindow = ((int)((gui.getHeight() * 1.2709) - 174.77)); + //Die bisherige Größe des Fenster wird abgespeichert + int widthWindow = gui.getWidth(); + int heightWindow = gui.getHeight(); gui.stopThread(); gui.dispose(); - //Die neue GUI wird mit den gespeicherten Werten gestartet - createSubClasses(WidthWindow, HeightWindow); + //Die neue Objekte werden mit den gespeicherten Werten erzeugt + createSubClasses(widthWindow, heightWindow); //die GUI wird an die gespeicherte Position verschoben gui.setLocation(locationWindow); diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java index af159eddbaae9d346faa0808d941a947ef3365cf..d721bda333f9ca8097a57abcde3e978b45ebfa1c 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java +++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java @@ -67,7 +67,9 @@ public class GUI extends JFrame implements Runnable, ActionListener { private int yscale; private JPanel modulPanel; private Container mainPane; - private int WindowHeight, WindowWidth; + private int windowHeight, windowWidth; + private final int scalingOffset = 100; //wird für die Skalierung des Arduinos benötigt + private final int updateGap = 10; //Legt fest wie groß eine Fenstergrößenänderung sein muss um eine Fensteraktualisierungen durchzuführen /** @@ -78,11 +80,20 @@ public class GUI extends JFrame implements Runnable, ActionListener { public GUI(Simulator simu, int _xscale, int _yscale) { super("ArduBlock Simulator"); - // TODO: Größenverhätlnisse mit +80 eventuell - xscale = _xscale; - yscale = _yscale; - WindowWidth = _xscale; - WindowHeight = _yscale; + + //Das Fenster wird gemäß des kleineren Seitenverhältnisses erstellt + if(_xscale <= _yscale - scalingOffset) { + xscale = _xscale; + yscale = _xscale; + } + else { + xscale = _yscale - scalingOffset; + yscale = _yscale - scalingOffset; + } + + + windowWidth = _xscale; + windowHeight = _yscale; // Konstruktor der Module modules[0] = new RGB(new ImageIcon(getToolkit() @@ -134,10 +145,16 @@ public class GUI extends JFrame implements Runnable, ActionListener { //Panel der Buttons auf der rechten Seite wird ausgeblendet //mainPane.add(createControlPanel(simu), BorderLayout.EAST); mainPane.add(createSerialLog(), BorderLayout.PAGE_END); - //this.setSize(xscale, yscale); - super.pack(); + + //Die Fenstergröße wird mit der dem Konstruktor übergebenen Größe festgelegt + super.setSize(_xscale, _yscale); + //Eine Minimum Fenstergröße wird festgelegt + super.setMinimumSize(new Dimension(200, 200)); // this.setLocation(-1300, 0); //Möglichkeit die Renderingposition festzulegen super.setVisible(true); + //Eine Aktualisierung der GUI gemäß den übergebenen Seitenverhältnissen wird aufgerufen. + updateGUI(xscale, yscale); + //ComponentListener wird hinzugefügt, der auf das Vergrößern des Fenster reagiert und die GUI neu lädt this.addComponentListener(new ComponentListener() { @@ -147,23 +164,23 @@ public class GUI extends JFrame implements Runnable, ActionListener { - //Das Fenster soll erst dann upgedatet werden wenn eine Größenänderung größer 30 stattgefunden hat + //Das Fenster soll erst dann upgedatet werden wenn eine Größenänderung größer 5 stattgefunden hat //um zu verhindern dass die update Funktion durch ein zu häufiges Aufrufen das Programm aufhängt. - if((Math.abs(WindowHeight - getHeight()) > 5) || (Math.abs(WindowWidth - getWidth()) > 5)) { - - WindowHeight = getHeight(); - WindowWidth = getWidth(); - // topPanelWidth = topPanel.getWidth(); - // topPanelHeight = topPanel.getHeight(); + if((Math.abs(windowHeight - getHeight()) > updateGap) || (Math.abs(windowWidth - getWidth()) > updateGap)) { + + //Die aktuelle Fenstergröße wird abgespeichert + windowHeight = getHeight(); + windowWidth = getWidth(); + //GUI wird nur gleichmäßig skaliert mit den Größen des kleineren Seitenverhätlnisses - if(WindowWidth <= (WindowHeight - 80)) { - xscale = WindowWidth; - yscale = WindowWidth; + if(windowWidth <= windowHeight - scalingOffset) { + xscale = windowWidth; + yscale = windowWidth; } else { - xscale = WindowHeight - 80; - yscale = WindowHeight - 80; + xscale = windowHeight - scalingOffset; + yscale = windowHeight - scalingOffset; } //GUI wird upgedatet @@ -207,7 +224,7 @@ public class GUI extends JFrame implements Runnable, ActionListener { public void updateGUI(int _xscale, int _yscale) { - + //Jedes Modul wird mit den neuen Seitenverhätlnissen aktualisiert for(int i = 0; i < 4; i++) { modules[i].updateGUI(_xscale, _yscale); @@ -215,10 +232,10 @@ public class GUI extends JFrame implements Runnable, ActionListener { } - + //Wird benötigt um kleine Anzeigefehler zu beseitigen super.setVisible(true); - - updateSerialLog(getHeight()-topPanel.getHeight()); + //Die Höhe des SerialLog wird gemäß den Seitenverhältnissen angepasst + updateSerialLogHeight(getHeight()-topPanel.getHeight()); @@ -326,8 +343,8 @@ public class GUI extends JFrame implements Runnable, ActionListener { * @param size * Aktuelle Größe Fenster in y */ - public void updateSerialLog(int size) { - + public void updateSerialLogHeight(int size) { + //Die Reihenanzahl des SerialLog wird anhand der Größe des oberen Panels berechnet int numRows = Math.min(Math.max(((int)size/20)-3, 3), 20); serialLog.setRows(numRows); this.setVisible(true); diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java index 6ed893363ee4d45e5509ce67b94583911d2bda2a..ecd583550519f66df927e4ffe8cbc138d04be217 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java @@ -33,18 +33,22 @@ public class ArduinoUno extends Modul { private JLabel labelPower, chiplabel, label13, labelButton; private ImageIcon chipIcon, chipIcon_temp; private JButton button; - private int xscale; - private int yscale; + public ArduinoUno(ImageIcon _icon, Simulator simu, int _xscale, int _yscale) { + //Die übergebenen Skalierungswerte werden in das Objekt geschrieben this.xscale = _xscale; this.yscale = _yscale; + //Das Label für den Arduino wird erzeugt chiplabel = new JLabel(); - + //Das Bild des Arduinos wird in chipIcon geladen chipIcon = _icon; + //Die temporäre Variable chipIcon_temp speichert das den Seitenverhältnissen entsprechend neu skalierte Bild chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.606*xscale)), ((int)(0.432*yscale)), Image.SCALE_SMOOTH)); + //das neue skalierte Bild wird in das chipLabel geschrieben chiplabel.setIcon(chipIcon_temp); + //Der Reset-Button wird erzeugt und initialisiert button = new JButton(); button.setActionCommand("reset"); button.addActionListener(simu); @@ -52,6 +56,7 @@ public class ArduinoUno extends Modul { button.setContentAreaFilled(false); button.setBorderPainted(false); + //Ein Label für den Reset-Button wird erzeugt labelButton = new JLabel(); labelButton.add(button); layerpane.add(labelButton, 0); @@ -86,7 +91,7 @@ public class ArduinoUno extends Modul { }; - + //Die update-Funktion wird mit den übergebenene Werten der Seitenverhältnisse aufgerufen updateGUI(xscale, yscale); @@ -96,50 +101,43 @@ public class ArduinoUno extends Modul { @Override public void updateGUI(int _xscale, int _yscale) { - //Alte label werden entfernt, wenn vorhanden. Da sonst die alten Label bestehen bleiben würden - if(labelPower != null) { - layerpane.remove(labelPower); - } - if(label13 != null) { - layerpane.remove(label13); - } this.xscale = _xscale; this.yscale = _yscale; // Offset für den Arduino um diesen mehr mittig zu platzieren. - int locx = ((int)(0.0516*xscale)); - int locy = ((int)(0.0517*yscale)); + int locx = ((int)(0.0516*xscale)); + int locy = ((int)(0.0517*yscale)); - layerpane.setPreferredSize(new Dimension(((int)(0.606*xscale)) + locx, ((int)(0.432*yscale)) + locy)); + layerpane.setPreferredSize(new Dimension(((int)(0.606*xscale)) + locx, ((int)(0.432*yscale)) + locy)); - chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.606*xscale)), ((int)(0.432*yscale)), Image.SCALE_SMOOTH)); + chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.606*xscale)), ((int)(0.432*yscale)), Image.SCALE_SMOOTH)); - chiplabel.setSize(((int)(0.606*xscale)), ((int)(0.432*yscale))); - chiplabel.setLocation(locx, locy); + chiplabel.setSize(((int)(0.606*xscale)), ((int)(0.432*yscale))); + chiplabel.setLocation(locx, locy); - layerpane.add(chiplabel, 0); + layerpane.add(chiplabel, 0); - - labelPower.setLocation(((int)(0.5207*xscale))+locx, ((int)(0.13*yscale))+locy); - labelPower.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale))); - layerpane.add(labelPower, 0); + //Position und Größe der PowerLED werden aktualisiert + labelPower.setLocation(((int)(0.5207*xscale))+locx, ((int)(0.13*yscale))+locy); + labelPower.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale))); + layerpane.add(labelPower, 0); + + //Position und Größe der LED13 werden aktualisiert + label13.setLocation(((int)(0.2655*xscale))+locx, ((int)(0.092*yscale))+locy); + label13.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale))); + layerpane.add(label13, 0); - label13.setLocation(((int)(0.2655*xscale))+locx, ((int)(0.092*yscale))+locy); - label13.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale))); - layerpane.add(label13, 0); - - // unsichtbarer Resetbutton - - button.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); + //Größe und Position des Buttons werden aktualisiert + button.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - labelButton.setSize(((int)(0.062*xscale)), ((int)(0.0527*yscale))); - labelButton.setLocation(((int)(0.06612*xscale))+locx, ((int)(0.00103*yscale))+locy); - - calculatePinPos(locx, locy); + labelButton.setSize(((int)(0.062*xscale)), ((int)(0.0527*yscale))); + labelButton.setLocation(((int)(0.06612*xscale))+locx, ((int)(0.00103*yscale))+locy); + //Die Pin Positionen werden neu berechnet + calculatePinPos(locx, locy); } diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java index 87a3b09616aff8601e5f13211353936efb1fdd22..6f88c152801c1effb50e63c4ce35d64f9e66be41 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java @@ -32,8 +32,7 @@ public class Button extends Modul implements ActionListener, MouseListener { //private JToggleButton but1, but2, but3; private JLabel chiplabel, label1, label2, label3; private LockButton but1, but2, but3; - private int xscale; - private int yscale; + @@ -96,7 +95,7 @@ public class Button extends Modul implements ActionListener, MouseListener { } public Button(ImageIcon _icon, ImageIcon _icon1, ImageIcon _icon2, int _xscale, int _yscale) { - + //Die übergebenen Skalierungswerte werden in das Objekt geschrieben this.xscale = _xscale; this.yscale = _yscale; chipIcon = _icon; @@ -123,8 +122,9 @@ public class Button extends Modul implements ActionListener, MouseListener { label1 = new JLabel(); label2 = new JLabel(); label3 = new JLabel(); - + //Das neu skalierte Icon wird in die temporäre Variable chipIcon_temp geladen chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); + //Das skalierte Icon wird als Icon des chipLabels gesetzt. chiplabel.setIcon(chipIcon_temp); iconOff_temp = new ImageIcon(iconOff.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH)); iconOn_temp = new ImageIcon(iconOn.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH)); @@ -132,6 +132,7 @@ public class Button extends Modul implements ActionListener, MouseListener { but1.setIcon(iconOff_temp); but2.setIcon(iconOff_temp); but3.setIcon(iconOff_temp); + //eine Aktualisierung des Moduls wird aufgerufen updateGUI(xscale, yscale); @@ -142,52 +143,29 @@ public class Button extends Modul implements ActionListener, MouseListener { this.xscale = _xscale; this.yscale = _yscale; + //Das Icon wird gemäß den neuen Seitenverhältnissen neu skaliert und geladen layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale)))); - chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); - + chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale))); - - but1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - - + //Die Größe und Position des Buttons 1 wird aktualisiert + but1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label1.setLocation(((int)(0.02996*xscale)), ((int)(0.06618*yscale))); - + //Die Icons On und Off werden neu skaliert und in die temporären Variablen geschrieben iconOff_temp.setImage(iconOff.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH)); iconOn_temp.setImage(iconOn.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH)); - //Abfrage ob der jeweilige Button im moment gedr�ckt wurde oder nicht und dementsprechend wird das gas gezoomte icon gesetzt -// if(!but1.isSelected()) -// but1.setIcon(iconOff_temp); -// else -// but1.setIcon(iconOn_temp); -// -// -// -// -// if(!but2.isSelected()) -// but2.setIcon(iconOff_temp); -// else -// but2.setIcon(iconOn_temp); -// -// -// -// if(!but3.isSelected()) -// but3.setIcon(iconOff_temp); -// else -// but3.setIcon(iconOn_temp); -// - + - but2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - + //Die Größe und Position des Buttons 2 wird aktualisiert + but2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label2.setLocation(((int)(0.1147*xscale)), ((int)(0.03619*yscale))); - but3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - + //Die Größe und Position des Buttons 3 wird aktualisiert + but3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label3.setLocation(((int)(0.200*xscale)), ((int)(0.06618*yscale))); @@ -198,7 +176,7 @@ public class Button extends Modul implements ActionListener, MouseListener { layerpane.add(label1, 0); layerpane.add(label2, 0); layerpane.add(label3, 0); - + //Die Positionen der Pins werden neu berechnet calculatePinPos(); } diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java index 53d734fcfd00281210c659fd620205058d47139c..18c9b59cf843e7362a9db11752afecc2adb681bf 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java @@ -25,6 +25,7 @@ public abstract class Modul implements Observer { protected Vector<Pin> pins = new Vector<Pin>(); protected JLayeredPane layerpane = new JLayeredPane(); protected Vector<Point> pinPos = new Vector<Point>(); + protected int xscale, yscale; public void setState(boolean State) { active = State; @@ -59,7 +60,8 @@ public abstract class Modul implements Observer { /** - * Funktion wird aufgerufen wenn sich die Größe des aktuellen Fensters ändert + * Funktion wird aufgerufen wenn sich die Größe des aktuellen Fensters ändert und die Module werden entsprechend der neuen Fenstergröße + * neu skaliert und angepasst. * @param xscale * Fenstergröße in x * @param yscale diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java index bc8a167d17d3f26014184c9363061e22673c808c..496c10f9299249bdcffb4ed656f46b0db4e27a4e 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java @@ -36,8 +36,7 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener { private ImageIcon chipIcon, chipIcon_temp; private JPanel sliderPanel; private Hashtable<Integer, JLabel> labelTable; - private int xscale; - private int yscale; + private static final String POTI_TOOLTIP = "Slider ziehen oder mit Mausrad verstellen"; @@ -52,7 +51,7 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener { slider.setMinorTickSpacing(64); slider.setPaintTicks(true); - // Erzeuge eine individuelle Slider Beschriftung + // Erzeuge eine Slider mit individueller Beschriftung sliderlabel1 = new JLabel("0%"); sliderlabel2 = new JLabel("50%"); sliderlabel3 = new JLabel("100%"); @@ -70,9 +69,10 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener { sliderPanel.setOpaque(false); layerpane.add(chiplabel, 0); layerpane.add(sliderPanel, 0); - + //Das ImageIcon des Potis wird neu skaliert und temporär geladen chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); chiplabel.setIcon(chipIcon_temp); + //Eine Aktualisierung des Moduls wird aufgerufen updateGUI(xscale, yscale); @@ -86,19 +86,17 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener { this.yscale = _yscale; layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale)))); - chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); - chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale))); - + //Die Schriftgröße wird gemäß den Seitenverhältnissen neu berechnet sliderlabel1.setFont(new Font(sliderlabel1.getName(), Font.BOLD, ((int)(0.0115*xscale)))); sliderlabel2.setFont(new Font(sliderlabel1.getName(), Font.BOLD, ((int)(0.0115*xscale)))); sliderlabel3.setFont(new Font(sliderlabel1.getName(), Font.BOLD, ((int)(0.0115*xscale)))); slider.setPreferredSize(new Dimension(((int)(0.186*xscale)), ((int)(0.05*yscale)))); sliderPanel.setSize(((int)(0.2066*xscale)), ((int)(0.066*yscale))); sliderPanel.setLocation(((int)(0.04855*xscale)), ((int)(0.175*yscale))); - + //Die Pin-Positionen werden neu berechnet calculatePinPos(); } diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java index 3023d9e925af09299a0b89fe6ece05e2f2c2e0c2..9627774663e0ff21e1b5ffb4d4661ad373abee95 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java @@ -31,8 +31,7 @@ public class RGB extends Modul { private int transparancy, tredValue, tgreenValue, tblueValue; private JLabel chiplabel, ledlabel; private ImageIcon chipIcon, chipIcon_temp; - private int xscale; - private int yscale; + public RGB(ImageIcon _icon, int _xscale, int _yscale) { this.xscale = _xscale; @@ -69,41 +68,34 @@ public class RGB extends Modul { }; + layerpane.add(chiplabel, 0); + layerpane.add(ledlabel, 0); + //das ImageIcon wird mit dem neu skalierten Bild geladen chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); + //Das Neue ImageIcon wird als Icon des chipLabels gesetzt chiplabel.setIcon(chipIcon_temp); + //Eine Aktualisierung des Moduls wird aufgerufen updateGUI(xscale, yscale); } @Override public void updateGUI(int _xscale, int _yscale) { - - - //Alte label werden entfernt, wenn vorhanden. Da sonst die alten Label bestehen bleiben würden - if(ledlabel != null) { - layerpane.remove(ledlabel); - } - + this.xscale = _xscale; this.yscale = _yscale; - // Erstellen der JLayerPane für das Modul - layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale)))); + // Erstellen der JLayerPane für das Modul + layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale)))); + chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); + chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale))); - chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH)); - - chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale))); - layerpane.add(chiplabel, 0); - - // Erzeuge ein JLabel welches das Leuchten der LED darstellt. - - - // Setze Position des Labels - ledlabel.setLocation(((int)(0.11*xscale)), ((int)(0.0383*yscale))); - ledlabel.setSize(((int)(0.2066*xscale)), ((int)(0.2068*yscale))); - layerpane.add(ledlabel, 0); + // Setze Position des Labels + ledlabel.setLocation(((int)(0.11*xscale)), ((int)(0.0383*yscale))); + ledlabel.setSize(((int)(0.2066*xscale)), ((int)(0.2068*yscale))); - calculatePinPos(); + //Die Pin-Positionen werden neu berechnet + calculatePinPos(); } /**