diff --git a/Applicatie/PropertiesPanel.java b/Applicatie/PropertiesPanel.java index a23edb5..7a5e7dc 100644 --- a/Applicatie/PropertiesPanel.java +++ b/Applicatie/PropertiesPanel.java @@ -18,26 +18,26 @@ import javax.swing.JTextField; @SuppressWarnings("serial") public class PropertiesPanel extends JPanel { - + DrawObject selectedObject = null; Panel p = null; - + JTextField locationXField; JTextField locationYField; JTextField scaleField; JTextField rotationField; - + PropertiesPanel() { super(); BoxLayout box = new BoxLayout(this, BoxLayout.PAGE_AXIS); setLayout(box); - + setPreferredSize(new Dimension(200,0)); setBorder(BorderFactory.createLineBorder(new Color(180,180,180))); setBackground(new Color(220, 220, 220)); - - + + //NAME "PROPERTIES" JPanel propPanel = new JPanel(); JLabel propLabel = new JLabel("Properties"); @@ -46,8 +46,8 @@ public class PropertiesPanel extends JPanel { propPanel.setMaximumSize(new Dimension(200, 60)); propPanel.add(propLabel); add(propPanel); - - + + //LOCATION JPanel locationPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel locationLabel = new JLabel("Location"); @@ -60,7 +60,7 @@ public class PropertiesPanel extends JPanel { JPanel locationXPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); locationXPanel.setPreferredSize(new Dimension(200, 50)); locationPanel.add(locationXPanel); - + JLabel locationXLabel = new JLabel("X"); locationXPanel.add(locationXLabel); locationXField = new JTextField(); @@ -69,14 +69,14 @@ public class PropertiesPanel extends JPanel { locationXField.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent e) { - try{ - locationXField.setBackground(Color.WHITE); - double xpos = Double.parseDouble(locationXField.getText()); - selectedObject.setPosition(new Point2D.Double(xpos, selectedObject.getPosition().getY())); - p.update(); - } catch (NumberFormatException nfe) { - locationXField.setBackground(Color.RED); - } + try{ + locationXField.setBackground(Color.WHITE); + double xpos = Double.parseDouble(locationXField.getText()); + selectedObject.setPosition(new Point2D.Double(xpos, selectedObject.getPosition().getY())); + p.update(); + } catch (NumberFormatException nfe) { + locationXField.setBackground(Color.RED); + } } public void keyReleased(KeyEvent e) {} public void keyPressed(KeyEvent e) {} @@ -88,7 +88,7 @@ public class PropertiesPanel extends JPanel { JPanel locationYPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); locationYPanel.setPreferredSize(new Dimension(200, 50)); locationPanel.add(locationYPanel); - + JLabel locationYLabel = new JLabel("Y"); locationYPanel.add(locationYLabel); locationYField = new JTextField(); @@ -103,7 +103,7 @@ public class PropertiesPanel extends JPanel { selectedObject.setPosition(new Point2D.Double(selectedObject.getPosition().getX(), ypos));; p.update(); } catch (NumberFormatException nfe) { - locationYField.setBackground(Color.RED); + locationYField.setBackground(Color.RED); } } public void keyReleased(KeyEvent e) {} @@ -112,8 +112,8 @@ public class PropertiesPanel extends JPanel { } locationYPanel.add(locationYField); } - - + + //SCALE JPanel scalePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel scaleLabel = new JLabel("Scale"); @@ -126,7 +126,7 @@ public class PropertiesPanel extends JPanel { JPanel scalePanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT)); scalePanel2.setPreferredSize(new Dimension(200, 50)); scalePanel.add(scalePanel2); - + JLabel scale2Label = new JLabel(" "); scalePanel2.add(scale2Label); scaleField = new JTextField(); @@ -135,14 +135,14 @@ public class PropertiesPanel extends JPanel { scaleField.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent e) { - try{ - scaleField.setBackground(Color.WHITE); - double scale = Double.parseDouble(scaleField.getText()); - selectedObject.setScale(scale); - p.update(); - } catch (NumberFormatException nfe) { - scaleField.setBackground(Color.RED); - } + try{ + scaleField.setBackground(Color.WHITE); + double scale = Double.parseDouble(scaleField.getText()); + selectedObject.setScale(scale); + p.update(); + } catch (NumberFormatException nfe) { + scaleField.setBackground(Color.RED); + } } public void keyReleased(KeyEvent e) {} public void keyPressed(KeyEvent e) {} @@ -150,8 +150,8 @@ public class PropertiesPanel extends JPanel { } scalePanel2.add(scaleField); } - - + + //ROTATION JPanel rotationPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel rotationLabel = new JLabel("Rotation"); @@ -164,7 +164,7 @@ public class PropertiesPanel extends JPanel { JPanel rotationPanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT)); rotationPanel2.setPreferredSize(new Dimension(200, 50)); rotationPanel.add(rotationPanel2); - + JLabel rotation2Label = new JLabel(" "); rotationPanel2.add(rotation2Label); rotationField = new JTextField(); @@ -173,15 +173,15 @@ public class PropertiesPanel extends JPanel { rotationField.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent e) { - try{ - rotationField.setBackground(Color.WHITE); - int rotation = Integer.parseInt(rotationField.getText()) % 360; - rotationField.setText(rotation +""); - selectedObject.setRotation(rotation); - p.update(); - } catch (NumberFormatException nfe) { - rotationField.setBackground(Color.RED); - } + try{ + rotationField.setBackground(Color.WHITE); + int rotation = Integer.parseInt(rotationField.getText()) % 360; + rotationField.setText(rotation +""); + selectedObject.setRotation(rotation); + p.update(); + } catch (NumberFormatException nfe) { + rotationField.setBackground(Color.RED); + } } public void keyReleased(KeyEvent e) {} public void keyPressed(KeyEvent e) {} @@ -189,14 +189,14 @@ public class PropertiesPanel extends JPanel { } rotationPanel2.add(rotationField); } - + //SPACER JPanel spacerPanel = new JPanel(); spacerPanel.setPreferredSize(new Dimension(200, 50)); spacerPanel.setMaximumSize(new Dimension(200, 50)); spacerPanel.setBackground(new Color(220, 220, 220)); add(spacerPanel); - + //EXAMPLE JPanel examplePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel exampleLabel = new JLabel("Example"); @@ -205,58 +205,62 @@ public class PropertiesPanel extends JPanel { examplePanel.setMaximumSize(new Dimension(200, 100)); examplePanel.add(exampleLabel); add(examplePanel); - + enableComponents(this, false); } - - + + public void setSelected(DrawObject drOb) { selectedObject = drOb; fillFields(); enableComponents(this, true); } - + public void clearSelected() { enableComponents(this, false); clearFields(this); selectedObject = null; } - + public void update() { fillFields(); } - + private void enableComponents(Container container, boolean enable) { - Component[] components = container.getComponents(); - for (Component component : components) { - component.setEnabled(enable); - if (component instanceof Container) { - enableComponents((Container)component, enable); - } - } - } - + Component[] components = container.getComponents(); + for (Component component : components) { + component.setEnabled(enable); + if (component instanceof Container) { + enableComponents((Container)component, enable); + } + } + } + private void clearFields(Container container) { - Component[] components = container.getComponents(); - for (Component component : components) { - if (component instanceof JTextField) { - ((JTextField) component).setText(""); - } - if (component instanceof Container) { - clearFields((Container)component); - } - } - } - + Component[] components = container.getComponents(); + for (Component component : components) { + if (component instanceof JTextField) { + ((JTextField) component).setText(""); + } + if (component instanceof Container) { + clearFields((Container)component); + } + } + } + private void fillFields() { - locationXField.setText(Math.round(selectedObject.getPosition().getX()) + ""); - locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); - scaleField.setText((double)Math.round(selectedObject.getScale()*10)/10 + ""); - rotationField.setText(Math.round(selectedObject.getRotation()%360) + ""); - } - + if(selectedObject != null) + { + locationXField.setText(Math.round(selectedObject.getPosition().getX()) + ""); + locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); + scaleField.setText((double)Math.round(selectedObject.getScale()*10)/10 + ""); + rotationField.setText(Math.round(selectedObject.getRotation()%360) + ""); + } + + } + public void setPanel(Panel p) { this.p = p;