From 11b772f45d3b636b03f9c8b7bbe8e28cb0dee9a1 Mon Sep 17 00:00:00 2001 From: Leon Dieter <Leon Dieter@DESKTOP-L4JC8N4> Date: Sat, 20 Feb 2021 12:29:10 +0100 Subject: [PATCH] Resizing problem solved, nullpointer exception left --- .../ardublock/simulator/view/GUI.java | 46 ++++++------------- .../simulator/view/modules/Button.java | 46 ++++++++++++------- .../simulator/view/modules/Poti.java | 22 ++++++--- 3 files changed, 58 insertions(+), 56 deletions(-) diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java index 0633134..705a573 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java +++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java @@ -133,40 +133,18 @@ public class GUI extends JFrame implements Runnable, ActionListener { this.addComponentListener(new ComponentListener() { @Override public void componentResized(ComponentEvent e) { - - System.out.println("topPanel Höhe und Weite: " + topPanel.getHeight() + "\t" + topPanel.getWidth()); - System.out.println("modulPanel Höhe und Weite: " + modulPanel.getHeight() + "\t" + modulPanel.getWidth()); - System.out.println("Fenster Höhe und Weite: " + getHeight() + "\t" + getWidth()); - - - - if((getWidth() - topPanel.getWidth() < 100) || (topPanel.getHeight() - modulPanel.getHeight() < 100)) { - + + if(getWidth() <= getHeight()) { xscale = getWidth(); - yscale = getWidth(); - - - - - - - + yscale = getWidth(); + } + else { xscale = getHeight(); - yscale = getHeight(); - - } - - else { - xscale = getWidth(); - yscale = getHeight(); - } - - if(xscale % 4 == 0 || yscale % 10 == 0) { + yscale = getHeight(); + } + if(xscale % 2 == 0 || yscale % 2 == 0) { updateGUI(xscale, yscale); - } - - //System.out.println("xScale: " + xscale + "\tyScale: " + yscale); - + } } @Override @@ -370,7 +348,11 @@ public class GUI extends JFrame implements Runnable, ActionListener { // e.printStackTrace(); } - super.repaint(); + + + super.repaint(); + + } } diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java index 958dbea..1da3b5c 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java @@ -38,12 +38,35 @@ public class Button extends Modul implements ActionListener { iconOn = _icon2; chiplabel = new JLabel(); but1 = new JToggleButton(); + but1.setIcon(iconOff); + but1.setActionCommand("0"); + but1.addActionListener(this); + + + but2 = new JToggleButton(); + but2.setIcon(iconOff); + but2.setActionCommand("1"); + but2.addActionListener(this); + but3 = new JToggleButton(); + but3.setIcon(iconOff); + but3.setActionCommand("2"); + but3.addActionListener(this); + label1 = new JLabel(); + + + label2 = new JLabel(); + + label3 = new JLabel(); + + + updateGUI(xscale, yscale); + } @@ -57,37 +80,26 @@ public class Button extends Modul implements ActionListener { chiplabel.setIcon(chipIcon_temp); chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale))); layerpane.add(chiplabel, 0); - - but1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - but1.setIcon(iconOff); - but1.setActionCommand("0"); - but1.addActionListener(this); + but1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - label1.add(but1); label1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label1.setLocation(((int)(0.02996*xscale)), ((int)(0.06618*yscale))); but2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); - but2.setIcon(iconOff); - but2.setActionCommand("1"); - but2.addActionListener(this); - - label2.add(but2); + 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))); - but3.setIcon(iconOff); - but3.setActionCommand("2"); - but3.addActionListener(this); - - label3.add(but3); + label3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale))); label3.setLocation(((int)(0.200*xscale)), ((int)(0.06618*yscale))); + label1.add(but1); + label2.add(but2); + label3.add(but3); layerpane.add(label1, 0); layerpane.add(label2, 0); layerpane.add(label3, 0); diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java index 1eeea9a..80b2809 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java @@ -4,6 +4,7 @@ package tec.letsgoing.ardublock.simulator.view.modules; import java.awt.Dimension; +import java.awt.Font; import java.awt.Image; import java.awt.Point; import java.awt.event.MouseWheelEvent; @@ -31,7 +32,7 @@ import tec.letsgoing.ardublock.simulator.view.GUI; public class Poti extends Modul implements ChangeListener, MouseWheelListener { int value = 0; private JSlider slider; - private JLabel chiplabel; + private JLabel chiplabel, sliderlabel1, sliderlabel2, sliderlabel3; private ImageIcon chipIcon, chipIcon_temp; private JPanel sliderPanel; private Hashtable<Integer, JLabel> labelTable; @@ -47,10 +48,13 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener { slider.setMinorTickSpacing(64); slider.setPaintTicks(true); - // Erzeuge eine individuelle Slider Beschriftung - labelTable.put(new Integer(10), new JLabel("0%")); - labelTable.put(new Integer(512), new JLabel("50%")); - labelTable.put(new Integer(1023), new JLabel("100%")); + // Erzeuge eine individuelle Slider Beschriftung + sliderlabel1 = new JLabel("0%"); + sliderlabel2 = new JLabel("50%"); + sliderlabel3 = new JLabel("100%"); + labelTable.put(new Integer(10), sliderlabel1); + labelTable.put(new Integer(512), sliderlabel2); + labelTable.put(new Integer(1023), sliderlabel3); slider.setLabelTable(labelTable); slider.setPaintLabels(true); slider.setOpaque(false); @@ -81,8 +85,12 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener { chiplabel.setIcon(chipIcon_temp); chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale))); - slider.setPreferredSize(new Dimension(((int)(0.186*xscale)), ((int)(0.0517*yscale)))); - sliderPanel.setSize(((int)(0.2066*xscale)), ((int)(0.0517*yscale))); + + 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))); calculatePinPos(); -- GitLab