From b2efa293ab7d74e62ab96c04b886cf917c7d6ecd Mon Sep 17 00:00:00 2001 From: Timourka Date: Sun, 5 Nov 2023 01:55:46 +0400 Subject: [PATCH 1/4] some base works on 5 Laba --- laba1Loco/FormTrainCollecltion.java | 6 +- laba1Loco/FormTrainConfig.java | 192 ++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+), 3 deletions(-) create mode 100644 laba1Loco/FormTrainConfig.java diff --git a/laba1Loco/FormTrainCollecltion.java b/laba1Loco/FormTrainCollecltion.java index 55817e6..78e561f 100644 --- a/laba1Loco/FormTrainCollecltion.java +++ b/laba1Loco/FormTrainCollecltion.java @@ -90,8 +90,8 @@ public class FormTrainCollecltion { return; } - FormTrain form = new FormTrain(); - form.buttonSelectTrain.addActionListener( + FormTrainConfig form = new FormTrainConfig(); + /*form.buttonSelectTrain.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e){ if (obj.Add(form._drawingTrain) != -1) @@ -108,7 +108,7 @@ public class FormTrainCollecltion { form.w.dispose(); } } - ); + );*/ } } ); diff --git a/laba1Loco/FormTrainConfig.java b/laba1Loco/FormTrainConfig.java new file mode 100644 index 0000000..3890232 --- /dev/null +++ b/laba1Loco/FormTrainConfig.java @@ -0,0 +1,192 @@ +package laba1Loco; + +import java.awt.*; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.util.*; +import javax.swing.*; +import javax.swing.border.Border; + +import java.awt.event.*; +import java.io.IOException; + +public class FormTrainConfig { + private class Canvas extends JComponent{ + public Canvas(){ + } + public void paintComponent (Graphics g){ + if (_train == null){ + return; + } + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + _train.DrawTransport(g2d); + super.repaint(); + } + } + private class LabelTransferHandler extends TransferHandler { + @Override + public int getSourceActions(JComponent c) { + return TransferHandler.COPY; + } + + @Override + protected Transferable createTransferable(JComponent c) { + return new StringSelection(((JLabel)c).getText()); + } + } + private class LabelMouseAdapter extends MouseAdapter{ + @Override + public void mousePressed(MouseEvent e) { + ((JLabel)e.getComponent()).getTransferHandler().exportAsDrag(((JLabel)e.getComponent()), e, TransferHandler.COPY); + } + } + final int WindowHeight = 700; + final int WindowWidth = 1000; + final int CanvasHeight = 600; + final int CanvasWidth = 600; + public DrawingTrain _train = null; + public JButton buttonAdd; + public JFrame w; + public FormTrainConfig(){ + Border border = BorderFactory.createLineBorder(Color.GRAY); + JLabel labelSpeed = new JLabel("Speed"); + JLabel labelWeight = new JLabel("Weight"); + JLabel labelWheelNum = new JLabel("Wheel"); + SpinnerModel spinnerModel = new SpinnerNumberModel(100, 100, 1000, 1); + JSpinner numericSpeed = new JSpinner(spinnerModel); + SpinnerModel spinnerModel2 = new SpinnerNumberModel(100, 100, 1000, 1); + JSpinner numericWeight = new JSpinner(spinnerModel2); + SpinnerModel spinnerModel3 = new SpinnerNumberModel(2, 2, 4, 1); + JSpinner numericWheelNum = new JSpinner(spinnerModel3); + JCheckBox checkBoxTube = new JCheckBox("Smoke tube"); + JCheckBox checkBoxFuelTank = new JCheckBox("Fuel tank"); + JCheckBox checkBoxLocoLine = new JCheckBox("Loco line"); + JPanel[] colorPanels = { + new JPanel(),new JPanel(),new JPanel(),new JPanel(), + new JPanel(),new JPanel(),new JPanel(),new JPanel(), + }; + colorPanels[0].setBackground(Color.BLACK); + colorPanels[1].setBackground(Color.BLUE); + colorPanels[2].setBackground(Color.GRAY); + colorPanels[3].setBackground(Color.YELLOW); + colorPanels[4].setBackground(Color.RED); + colorPanels[5].setBackground(Color.GREEN); + colorPanels[6].setBackground(Color.ORANGE); + colorPanels[7].setBackground(Color.WHITE); + + JLabel labelTrain = new JLabel("Train"); + labelTrain.setTransferHandler(new LabelTransferHandler()); + labelTrain.addMouseListener(new LabelMouseAdapter()); + labelTrain.setBorder(border); + labelTrain.setHorizontalAlignment(SwingConstants.CENTER); + labelTrain.setVerticalAlignment(SwingConstants.CENTER); + + JLabel labelLoco = new JLabel("Loco"); + labelLoco.setTransferHandler(new LabelTransferHandler()); + labelLoco.addMouseListener(new LabelMouseAdapter()); + labelLoco.setBorder(border); + labelLoco.setHorizontalAlignment(SwingConstants.CENTER); + labelLoco.setVerticalAlignment(SwingConstants.CENTER); + + JLabel labelColor = new JLabel("Color"); + labelColor.setBorder(border); + labelColor.setHorizontalAlignment(SwingConstants.CENTER); + labelColor.setVerticalAlignment(SwingConstants.CENTER); + JLabel labelAdditionalColor = new JLabel("Additional color"); + labelAdditionalColor.setBorder(border); + labelAdditionalColor.setHorizontalAlignment(SwingConstants.CENTER); + labelAdditionalColor.setVerticalAlignment(SwingConstants.CENTER); + + Canvas canvas = new Canvas(); + canvas.setTransferHandler( + new TransferHandler(){ + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(DataFlavor.stringFlavor); + } + + @Override + public boolean importData(TransferHandler.TransferSupport support) { + if (canImport(support)) { + try { + String data = (String) support.getTransferable().getTransferData(DataFlavor.stringFlavor); + switch (data) { + case "Train": + _train = new DrawingTrain((int)numericSpeed.getValue(), (int)numericWeight.getValue(), Color.WHITE, (int)numericWheelNum.getValue(), CanvasWidth,CanvasHeight); + break; + case "Loco": + _train = new DrawingLoco((int)numericSpeed.getValue(), (int)numericWeight.getValue(), Color.WHITE, (int)numericWheelNum.getValue(), Color.BLACK, checkBoxTube.isSelected(), checkBoxFuelTank.isSelected(), checkBoxLocoLine.isSelected(), CanvasWidth,CanvasHeight); + break; + } + canvas.repaint(); + return true; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + + buttonAdd = new JButton("Add"); + JButton buttonCancel = new JButton("Cancel"); + + labelSpeed.setBounds(10,10,40,20); + labelWeight.setBounds(10,40,40,20); + labelWheelNum.setBounds(10,70,40,20); + numericSpeed.setBounds(55,10,80,20); + numericWeight.setBounds(55,40,80,20); + numericWheelNum.setBounds(55,70,80,20); + checkBoxTube.setBounds(10,100,120,20); + checkBoxFuelTank.setBounds(10,130,120,20); + checkBoxLocoLine.setBounds(10,160,120,20); + for (int i = 0; i < colorPanels.length; i+=2){ + colorPanels[i].setBounds(10,200+i/2*60,50,50); + colorPanels[i+1].setBounds(70,200+i/2*60,50,50); + } + labelTrain.setBounds(10,500 ,50,30); + labelLoco.setBounds(70,500 ,50,30); + + labelColor.setBounds(WindowWidth-CanvasWidth, 10, CanvasWidth/3, 30); + labelAdditionalColor.setBounds(WindowWidth-CanvasWidth + CanvasWidth*2/3, 10, CanvasWidth/3, 30); + canvas.setBounds(WindowWidth-CanvasWidth, 50, CanvasWidth, CanvasHeight); + buttonAdd.setBounds(WindowWidth-CanvasWidth, CanvasHeight+60, CanvasWidth/3, 30); + buttonCancel.setBounds(WindowWidth-CanvasWidth + CanvasWidth*2/3, CanvasHeight+60, CanvasWidth/3, 30); + + w = new JFrame(); + w.setSize (WindowWidth+20, WindowHeight+40); + w.setLayout(null); + w.add(labelSpeed); + w.add(labelWeight); + w.add(labelWheelNum); + w.add(numericSpeed); + w.add(numericWeight); + w.add(numericWheelNum); + w.add(checkBoxTube); + w.add(checkBoxFuelTank); + w.add(checkBoxLocoLine); + for (var it : colorPanels) + w.add(it); + w.add(labelTrain); + w.add(labelLoco); + w.add(labelColor); + w.add(labelAdditionalColor); + w.add(canvas); + w.add(buttonAdd); + w.add(buttonCancel); + + w.setVisible(true); + + buttonCancel.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent e){ + w.dispose(); + } + } + ); + } +} -- 2.25.1 From c6d17761bf6e7710631f50bb95f4e31b21951cd4 Mon Sep 17 00:00:00 2001 From: Timourka Date: Sun, 5 Nov 2023 16:29:18 +0400 Subject: [PATCH 2/4] 5 base --- laba1Loco/DrawingLoco.java | 5 ++ laba1Loco/DrawingTrain.java | 9 ++- laba1Loco/FormTrainCollecltion.java | 6 +- laba1Loco/FormTrainConfig.java | 105 ++++++++++++++++++++++++- laba1Loco/TrainsGenericCollection.java | 2 + 5 files changed, 120 insertions(+), 7 deletions(-) diff --git a/laba1Loco/DrawingLoco.java b/laba1Loco/DrawingLoco.java index 0a03b88..e5de16d 100644 --- a/laba1Loco/DrawingLoco.java +++ b/laba1Loco/DrawingLoco.java @@ -8,6 +8,11 @@ import java.awt.event.*; public class DrawingLoco extends DrawingTrain{ + public void setAdditionalColor(Color color) + { + ((EntityLoco)EntityTrain).AdditionalColor = color; + } + /// /// Инициализация свойств /// diff --git a/laba1Loco/DrawingTrain.java b/laba1Loco/DrawingTrain.java index db5143c..b17607b 100644 --- a/laba1Loco/DrawingTrain.java +++ b/laba1Loco/DrawingTrain.java @@ -9,6 +9,11 @@ import java.awt.event.*; public class DrawingTrain { public IMoveableObject GetMoveableObject() { return new DrawningObjectTrain(this);} + public void setBodyColor(Color color) + { + EntityTrain.BodyColor = color; + } + protected IWheelDrawing wheelDrawing; /// /// Класс-сущность @@ -17,11 +22,11 @@ public class DrawingTrain { /// /// Ширина окна /// - protected int _pictureWidth; + public int _pictureWidth; /// /// Высота окна /// - protected int _pictureHeight; + public int _pictureHeight; /// /// Левая координата прорисовки локомотива /// diff --git a/laba1Loco/FormTrainCollecltion.java b/laba1Loco/FormTrainCollecltion.java index 78e561f..cc3ef8f 100644 --- a/laba1Loco/FormTrainCollecltion.java +++ b/laba1Loco/FormTrainCollecltion.java @@ -91,10 +91,10 @@ public class FormTrainCollecltion { } FormTrainConfig form = new FormTrainConfig(); - /*form.buttonSelectTrain.addActionListener( + form.buttonAdd.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e){ - if (obj.Add(form._drawingTrain) != -1) + if (obj.Add(form._train) != -1) { JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); System.out.println("Объект добавлен"); @@ -108,7 +108,7 @@ public class FormTrainCollecltion { form.w.dispose(); } } - );*/ + ); } } ); diff --git a/laba1Loco/FormTrainConfig.java b/laba1Loco/FormTrainConfig.java index 3890232..1b58c73 100644 --- a/laba1Loco/FormTrainConfig.java +++ b/laba1Loco/FormTrainConfig.java @@ -26,6 +26,7 @@ public class FormTrainConfig { super.repaint(); } } + //класс для перетаскивания типа объекта private class LabelTransferHandler extends TransferHandler { @Override public int getSourceActions(JComponent c) { @@ -36,13 +37,60 @@ public class FormTrainConfig { protected Transferable createTransferable(JComponent c) { return new StringSelection(((JLabel)c).getText()); } - } + } + //что бы цвет можно было таскать + private class ColorTransferable implements Transferable { + private Color color; + private static final DataFlavor colorDataFlavor = new DataFlavor(Color.class, "Color"); + + public ColorTransferable(Color color) { + this.color = color; + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{colorDataFlavor}; + } + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return colorDataFlavor.equals(flavor); + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { + if (isDataFlavorSupported(flavor)) { + return color; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + } + //для перетаскивания цвета + private class PanelTransferHandler extends TransferHandler { + @Override + public int getSourceActions(JComponent c) { + return TransferHandler.COPY; + } + + @Override + protected Transferable createTransferable(JComponent c) { + return new ColorTransferable(((JPanel)c).getBackground()); + } + } + //для обработки нажатий private class LabelMouseAdapter extends MouseAdapter{ @Override public void mousePressed(MouseEvent e) { ((JLabel)e.getComponent()).getTransferHandler().exportAsDrag(((JLabel)e.getComponent()), e, TransferHandler.COPY); } } + private class PanelMouseAdapter extends MouseAdapter{ + @Override + public void mousePressed(MouseEvent e) { + ((JPanel)e.getComponent()).getTransferHandler().exportAsDrag(((JPanel)e.getComponent()), e, TransferHandler.COPY); + } + } final int WindowHeight = 700; final int WindowWidth = 1000; final int CanvasHeight = 600; @@ -50,6 +98,7 @@ public class FormTrainConfig { public DrawingTrain _train = null; public JButton buttonAdd; public JFrame w; + public Canvas canvas; public FormTrainConfig(){ Border border = BorderFactory.createLineBorder(Color.GRAY); JLabel labelSpeed = new JLabel("Speed"); @@ -76,6 +125,10 @@ public class FormTrainConfig { colorPanels[5].setBackground(Color.GREEN); colorPanels[6].setBackground(Color.ORANGE); colorPanels[7].setBackground(Color.WHITE); + for (var it : colorPanels){ + it.setTransferHandler(new PanelTransferHandler()); + it.addMouseListener(new PanelMouseAdapter()); + } JLabel labelTrain = new JLabel("Train"); labelTrain.setTransferHandler(new LabelTransferHandler()); @@ -95,12 +148,60 @@ public class FormTrainConfig { labelColor.setBorder(border); labelColor.setHorizontalAlignment(SwingConstants.CENTER); labelColor.setVerticalAlignment(SwingConstants.CENTER); + labelColor.setTransferHandler( + new TransferHandler(){ + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor); + } + + @Override + public boolean importData(TransferHandler.TransferSupport support) { + if (canImport(support)) { + try { + Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + _train.setBodyColor(color); + canvas.repaint(); + return true; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + JLabel labelAdditionalColor = new JLabel("Additional color"); labelAdditionalColor.setBorder(border); labelAdditionalColor.setHorizontalAlignment(SwingConstants.CENTER); labelAdditionalColor.setVerticalAlignment(SwingConstants.CENTER); + labelAdditionalColor.setTransferHandler( + new TransferHandler(){ + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor); + } - Canvas canvas = new Canvas(); + @Override + public boolean importData(TransferHandler.TransferSupport support) { + if (canImport(support)) { + try { + Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + if (!(_train instanceof DrawingLoco)) + return false; + ((DrawingLoco)_train).setAdditionalColor(color); + return true; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + + canvas = new Canvas(); canvas.setTransferHandler( new TransferHandler(){ @Override diff --git a/laba1Loco/TrainsGenericCollection.java b/laba1Loco/TrainsGenericCollection.java index 12461bc..5063084 100644 --- a/laba1Loco/TrainsGenericCollection.java +++ b/laba1Loco/TrainsGenericCollection.java @@ -117,6 +117,8 @@ public class TrainsGenericCollection Date: Sun, 5 Nov 2023 20:05:09 +0400 Subject: [PATCH 3/4] hard 5 laba --- laba1Loco/FormTrainCollecltion.java | 2 +- laba1Loco/FormTrainConfig.java | 118 +++++++++++++++++++++++++++- 2 files changed, 117 insertions(+), 3 deletions(-) diff --git a/laba1Loco/FormTrainCollecltion.java b/laba1Loco/FormTrainCollecltion.java index cc3ef8f..a134a55 100644 --- a/laba1Loco/FormTrainCollecltion.java +++ b/laba1Loco/FormTrainCollecltion.java @@ -94,7 +94,7 @@ public class FormTrainCollecltion { form.buttonAdd.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e){ - if (obj.Add(form._train) != -1) + if (obj != null && obj.Add(form._train) != -1) { JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); System.out.println("Объект добавлен"); diff --git a/laba1Loco/FormTrainConfig.java b/laba1Loco/FormTrainConfig.java index 1b58c73..5329872 100644 --- a/laba1Loco/FormTrainConfig.java +++ b/laba1Loco/FormTrainConfig.java @@ -91,15 +91,83 @@ public class FormTrainConfig { ((JPanel)e.getComponent()).getTransferHandler().exportAsDrag(((JPanel)e.getComponent()), e, TransferHandler.COPY); } } + + //что бы wheel'ы можно было тоскать + private class WheelTransferable implements Transferable { + private IWheelDrawing wheelDrawing; + private static final DataFlavor wheelDrawingDataFlavor = new DataFlavor(IWheelDrawing.class, "Wheel Drawing"); + + public WheelTransferable(IWheelDrawing wheelDrawing) { + this.wheelDrawing = wheelDrawing; + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{wheelDrawingDataFlavor}; + } + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return flavor.equals(wheelDrawingDataFlavor); + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { + if (isDataFlavorSupported(flavor)) { + return wheelDrawing; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + } + //для отрисовки wheel'ов, которые можно взять и потащить + private class ComponentWheel extends JComponent{ + public IWheelDrawing wheelDrawing; + + public ComponentWheel(IWheelDrawing _wheelDrawing){ + wheelDrawing = _wheelDrawing; + this.addMouseListener( + new MouseAdapter(){ + @Override + public void mousePressed(MouseEvent e) { + ((ComponentWheel)e.getComponent()).getTransferHandler().exportAsDrag(((ComponentWheel)e.getComponent()), e, TransferHandler.COPY); + } + } + ); + this.setTransferHandler( + new TransferHandler(){ + @Override + public int getSourceActions(JComponent c) { + return TransferHandler.COPY; + } + + @Override + protected Transferable createTransferable(JComponent c) { + return new WheelTransferable(((ComponentWheel)c).wheelDrawing); + } + } + ); + } + + public void paintComponent (Graphics g){ + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + wheelDrawing.Draw(-3,-34,false,Color.BLACK,g2d); + super.repaint(); + } + } + final int WindowHeight = 700; - final int WindowWidth = 1000; + final int WindowWidth = 800; final int CanvasHeight = 600; final int CanvasWidth = 600; public DrawingTrain _train = null; public JButton buttonAdd; public JFrame w; public Canvas canvas; + public FormTrainConfig(){ + Border border = BorderFactory.createLineBorder(Color.GRAY); JLabel labelSpeed = new JLabel("Speed"); JLabel labelWeight = new JLabel("Weight"); @@ -160,6 +228,8 @@ public class FormTrainConfig { if (canImport(support)) { try { Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + if (_train == null) + return false; _train.setBodyColor(color); canvas.repaint(); return true; @@ -188,6 +258,8 @@ public class FormTrainConfig { if (canImport(support)) { try { Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + if (_train == null) + return false; if (!(_train instanceof DrawingLoco)) return false; ((DrawingLoco)_train).setAdditionalColor(color); @@ -201,6 +273,36 @@ public class FormTrainConfig { } ); + JLabel labelWheel = new JLabel("Wheel"); + labelWheel.setBorder(border); + labelWheel.setHorizontalAlignment(SwingConstants.CENTER); + labelWheel.setVerticalAlignment(SwingConstants.CENTER); + labelWheel.setTransferHandler( + new TransferHandler(){ + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(WheelTransferable.wheelDrawingDataFlavor); + } + + @Override + public boolean importData(TransferHandler.TransferSupport support) { + if (canImport(support)) { + try { + IWheelDrawing wheelDrawing = (IWheelDrawing) support.getTransferable().getTransferData(WheelTransferable.wheelDrawingDataFlavor); + if (_train == null) + return false; + wheelDrawing.setNumWheel(_train.EntityTrain.numWheel); + _train.wheelDrawing = wheelDrawing; + canvas.repaint(); + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + canvas = new Canvas(); canvas.setTransferHandler( new TransferHandler(){ @@ -236,6 +338,10 @@ public class FormTrainConfig { buttonAdd = new JButton("Add"); JButton buttonCancel = new JButton("Cancel"); + ComponentWheel componentWheelSimple = new ComponentWheel(new WheelDrawingSimple()); + ComponentWheel componentWheelBalls = new ComponentWheel(new WheelDrawingBalls()); + ComponentWheel componentWheelDavidStar = new ComponentWheel(new WheelDrawingDavidStar()); + labelSpeed.setBounds(10,10,40,20); labelWeight.setBounds(10,40,40,20); labelWheelNum.setBounds(10,70,40,20); @@ -249,11 +355,15 @@ public class FormTrainConfig { colorPanels[i].setBounds(10,200+i/2*60,50,50); colorPanels[i+1].setBounds(70,200+i/2*60,50,50); } + componentWheelSimple.setBounds(10,470,8,8); + componentWheelBalls.setBounds(30,470,8,8); + componentWheelDavidStar.setBounds(50,470,8,8); labelTrain.setBounds(10,500 ,50,30); labelLoco.setBounds(70,500 ,50,30); labelColor.setBounds(WindowWidth-CanvasWidth, 10, CanvasWidth/3, 30); - labelAdditionalColor.setBounds(WindowWidth-CanvasWidth + CanvasWidth*2/3, 10, CanvasWidth/3, 30); + labelAdditionalColor.setBounds(WindowWidth-CanvasWidth + CanvasWidth/3, 10, CanvasWidth/3, 30); + labelWheel.setBounds(WindowWidth-CanvasWidth + CanvasWidth*2/3, 10, CanvasWidth/3, 30); canvas.setBounds(WindowWidth-CanvasWidth, 50, CanvasWidth, CanvasHeight); buttonAdd.setBounds(WindowWidth-CanvasWidth, CanvasHeight+60, CanvasWidth/3, 30); buttonCancel.setBounds(WindowWidth-CanvasWidth + CanvasWidth*2/3, CanvasHeight+60, CanvasWidth/3, 30); @@ -276,9 +386,13 @@ public class FormTrainConfig { w.add(labelLoco); w.add(labelColor); w.add(labelAdditionalColor); + w.add(labelWheel); w.add(canvas); w.add(buttonAdd); w.add(buttonCancel); + w.add(componentWheelSimple); + w.add(componentWheelBalls); + w.add(componentWheelDavidStar); w.setVisible(true); -- 2.25.1 From 1a6dcf705940550f4d83e9faf3b7cd3cc2a8cfe1 Mon Sep 17 00:00:00 2001 From: Timourka Date: Mon, 6 Nov 2023 17:23:00 +0400 Subject: [PATCH 4/4] =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=D0=B0=20?= =?UTF-8?q?6=20=D0=BB=D0=B0=D0=B1=D1=8B=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laba1Loco/DrawingLoco.java | 5 ----- laba1Loco/DrawingTrain.java | 5 ----- laba1Loco/EntityLoco.java | 2 ++ laba1Loco/EntityTrain.java | 2 ++ laba1Loco/FormTrainConfig.java | 4 ++-- 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/laba1Loco/DrawingLoco.java b/laba1Loco/DrawingLoco.java index e5de16d..0a03b88 100644 --- a/laba1Loco/DrawingLoco.java +++ b/laba1Loco/DrawingLoco.java @@ -8,11 +8,6 @@ import java.awt.event.*; public class DrawingLoco extends DrawingTrain{ - public void setAdditionalColor(Color color) - { - ((EntityLoco)EntityTrain).AdditionalColor = color; - } - /// /// Инициализация свойств /// diff --git a/laba1Loco/DrawingTrain.java b/laba1Loco/DrawingTrain.java index b17607b..af1fd7c 100644 --- a/laba1Loco/DrawingTrain.java +++ b/laba1Loco/DrawingTrain.java @@ -9,11 +9,6 @@ import java.awt.event.*; public class DrawingTrain { public IMoveableObject GetMoveableObject() { return new DrawningObjectTrain(this);} - public void setBodyColor(Color color) - { - EntityTrain.BodyColor = color; - } - protected IWheelDrawing wheelDrawing; /// /// Класс-сущность diff --git a/laba1Loco/EntityLoco.java b/laba1Loco/EntityLoco.java index 27d16d3..3c75e2d 100644 --- a/laba1Loco/EntityLoco.java +++ b/laba1Loco/EntityLoco.java @@ -8,6 +8,8 @@ import java.awt.event.*; public class EntityLoco extends EntityTrain{ public Color AdditionalColor; + + public void setAdditionalColor(Color color){AdditionalColor = color;} /// /// Признак (опция) наличия трубы /// diff --git a/laba1Loco/EntityTrain.java b/laba1Loco/EntityTrain.java index a25d1d2..6eb7775 100644 --- a/laba1Loco/EntityTrain.java +++ b/laba1Loco/EntityTrain.java @@ -19,6 +19,8 @@ public class EntityTrain { /// Основной цвет /// public Color BodyColor; + + public void setBodyColor(Color color){BodyColor = color;} /// /// Шаг перемещения поезда /// diff --git a/laba1Loco/FormTrainConfig.java b/laba1Loco/FormTrainConfig.java index 5329872..301d8d7 100644 --- a/laba1Loco/FormTrainConfig.java +++ b/laba1Loco/FormTrainConfig.java @@ -230,7 +230,7 @@ public class FormTrainConfig { Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); if (_train == null) return false; - _train.setBodyColor(color); + _train.EntityTrain.setBodyColor(color); canvas.repaint(); return true; } catch (UnsupportedFlavorException | IOException e) { @@ -262,7 +262,7 @@ public class FormTrainConfig { return false; if (!(_train instanceof DrawingLoco)) return false; - ((DrawingLoco)_train).setAdditionalColor(color); + ((EntityLoco)_train.EntityTrain).setAdditionalColor(color); return true; } catch (UnsupportedFlavorException | IOException e) { e.printStackTrace(); -- 2.25.1