From 88e0ccbe5e407ff37a320933f36ff57777d8c21e Mon Sep 17 00:00:00 2001 From: Sergey Kozyrev Date: Tue, 28 Nov 2023 18:10:22 +0400 Subject: [PATCH 1/2] SomethingStrange --- BaseTanker.java | 2 +- CollectionFrame.java | 8 ++++---- DrawGasolineTanker.java | 6 ++++++ DrawTanker.java | 12 +++++++++++- DrawWheelCircle.java | 22 ++++++++++++++++++---- DrawWheelClassic.java | 13 ++++++++++++- DrawWheelSquare.java | 29 +++++++++++++++++++++++------ GasolineTanker.java | 1 + IWheelDraw.java | 1 + Main.java | 1 - 10 files changed, 77 insertions(+), 18 deletions(-) diff --git a/BaseTanker.java b/BaseTanker.java index 2cc44da..7f818e5 100644 --- a/BaseTanker.java +++ b/BaseTanker.java @@ -23,7 +23,7 @@ public class BaseTanker { { return BodyColor; } - private void setBodyColor(Color bodyColor) + public void setBodyColor(Color bodyColor) { BodyColor = bodyColor; } diff --git a/CollectionFrame.java b/CollectionFrame.java index a086266..0832ba2 100644 --- a/CollectionFrame.java +++ b/CollectionFrame.java @@ -86,13 +86,13 @@ class CollectionFrame extends JComponent { var obj = _tanksStorage.get(frame.listStorage.getSelectedValue()); if (obj == null) return; - BaseFrame form = new BaseFrame(); + ConfigFrame form = new ConfigFrame(); form.setVisible(true); - form.buttonSelect.addActionListener( + form.buttonAdd.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e){ - - if (obj.plus(form.Gasoline.GetSelectedCar()) != -1) + DrawTanker dT = form.Gasoline._tanker; + if (dT != null && obj.plus(dT) != -1) { form.dispose(); JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); diff --git a/DrawGasolineTanker.java b/DrawGasolineTanker.java index ced75df..be6ce35 100644 --- a/DrawGasolineTanker.java +++ b/DrawGasolineTanker.java @@ -7,6 +7,12 @@ public class DrawGasolineTanker extends DrawTanker { GasolineTanker = new GasolineTanker(speed, weight, bodyColor, additionalColor, bodyKit, wing, sportLine); } } + public DrawGasolineTanker(int speed, double weight, Color bodyColor, Color additionalColor, boolean bodyKit, boolean wing, boolean sportLine, int width, int height, int wheelCount) { + super(speed, weight, bodyColor, width, height, wheelCount); + if (GasolineTanker != null) { + GasolineTanker = new GasolineTanker(speed, weight, bodyColor, additionalColor, bodyKit, wing, sportLine); + } + } public DrawGasolineTanker(GasolineTanker tanker, int width, int height, IWheelDraw wheelMode) { super(tanker, width, height, wheelMode); diff --git a/DrawTanker.java b/DrawTanker.java index 24e8676..0c4f667 100644 --- a/DrawTanker.java +++ b/DrawTanker.java @@ -3,7 +3,7 @@ import java.awt.*; public class DrawTanker { protected BaseTanker GasolineTanker; public BaseTanker GetGasolineTanker() {return GasolineTanker;} - private IWheelDraw wheelsDrawing; + protected IWheelDraw wheelsDrawing; protected int _pictureWidth; protected int _pictureHeight; protected int _startPosX; @@ -49,6 +49,16 @@ public class DrawTanker { wheelsDrawing.setWheelCount(wheelCount); } + public DrawTanker(int speed, double weight, Color bodyColor, int width, int height, int wheelCount) + { + _pictureHeight = height; + _pictureWidth = width; + GasolineTanker = new BaseTanker(speed, weight, bodyColor); + wheelsDrawing = new DrawWheelClassic(); + wheelsDrawing.setWheelCount(wheelCount); + } + + public DrawTanker(BaseTanker tanker, int width, int height, IWheelDraw wheels) { GasolineTanker = tanker; diff --git a/DrawWheelCircle.java b/DrawWheelCircle.java index a2f7bb5..ece7ada 100644 --- a/DrawWheelCircle.java +++ b/DrawWheelCircle.java @@ -17,21 +17,35 @@ public class DrawWheelCircle implements IWheelDraw { wheelCounter = WheelCounter.TWO; } + public int getWheelCount() + { + switch (wheelCounter) + { + case TWO -> {return 2;} + case THREE -> {return 3;} + case FOUR -> {return 4;} + } + return 2; + } public void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d) { g2d.setColor(bodyColor); + Random rnd = new Random(); g2d.fillOval(10 + _startPosX, 60 + _startPosY, 20, 20); g2d.fillOval(80 + _startPosX, 60 + _startPosY, 20, 20); + Color stringColor = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); + g2d.setColor(stringColor); + g2d.drawString("S",15 + _startPosX, 75 + _startPosY); + g2d.drawString("S",85 + _startPosX, 75 + _startPosY); + if (wheelCounter == null) + return; + g2d.setColor(bodyColor); switch (wheelCounter) { case THREE -> {g2d.fillOval(45 + _startPosX, 60 + _startPosY ,20, 20);} case FOUR -> {g2d.fillOval(30 + _startPosX, 60 + _startPosY ,20, 20); g2d.fillOval(60 + _startPosX, 60 + _startPosY ,20, 20);} } - Random rnd = new Random(); - Color stringColor = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); g2d.setColor(stringColor); - g2d.drawString("S",15 + _startPosX, 75 + _startPosY); - g2d.drawString("S",85 + _startPosX, 75 + _startPosY); switch (wheelCounter) { case THREE -> {g2d.drawString("S",50 + _startPosX, 75 + _startPosY);} diff --git a/DrawWheelClassic.java b/DrawWheelClassic.java index 273c716..c8cdf61 100644 --- a/DrawWheelClassic.java +++ b/DrawWheelClassic.java @@ -15,12 +15,23 @@ public class DrawWheelClassic implements IWheelDraw{ else if (count % 3 == 2) wheelCounter = WheelCounter.TWO; } - + public int getWheelCount() + { + switch (wheelCounter) + { + case TWO -> {return 2;} + case THREE -> {return 3;} + case FOUR -> {return 4;} + } + return 2; + } public void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d) { g2d.setColor(bodyColor); g2d.fillOval(10 + _startPosX, 60 + _startPosY, 20, 20); g2d.fillOval(80 + _startPosX, 60 + _startPosY, 20, 20); + if (wheelCounter == null) + return; switch (wheelCounter) { case THREE -> {g2d.fillOval(45 + _startPosX, 60 + _startPosY ,20, 20);} diff --git a/DrawWheelSquare.java b/DrawWheelSquare.java index 3dd7c18..215ec7a 100644 --- a/DrawWheelSquare.java +++ b/DrawWheelSquare.java @@ -17,22 +17,39 @@ public class DrawWheelSquare implements IWheelDraw{ wheelCounter = WheelCounter.TWO; } + public int getWheelCount() + { + switch (wheelCounter) + { + case TWO -> {return 2;} + case THREE -> {return 3;} + case FOUR -> {return 4;} + } + return 2; + } public void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d) { g2d.setColor(bodyColor); g2d.fillOval(10 + _startPosX, 60 + _startPosY, 20, 20); - g2d.drawString("S",15 + _startPosX, 60 + _startPosY); g2d.fillOval(80 + _startPosX, 60 + _startPosY, 20, 20); - switch (wheelCounter) - { - case THREE -> {g2d.fillOval(45 + _startPosX, 60 + _startPosY ,20, 20);} - case FOUR -> {g2d.fillOval(30 + _startPosX, 60 + _startPosY ,20, 20); g2d.fillOval(60 + _startPosX, 60 + _startPosY ,20, 20);} - } Random rnd = new Random(); Color stringColor = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); g2d.setColor(stringColor); g2d.fillRect(15 + _startPosX, 65 + _startPosY, 10, 10); g2d.fillRect(85 + _startPosX, 65 + _startPosY, 10, 10); + if (wheelCounter == null) + return; + g2d.setColor(bodyColor); + switch (wheelCounter) { + case THREE -> { + g2d.fillOval(45 + _startPosX, 60 + _startPosY, 20, 20); + } + case FOUR -> { + g2d.fillOval(30 + _startPosX, 60 + _startPosY, 20, 20); + g2d.fillOval(60 + _startPosX, 60 + _startPosY, 20, 20); + } + } + g2d.setColor(stringColor); switch (wheelCounter) { case THREE -> {g2d.fillRect(50 + _startPosX, 65 + _startPosY, 10, 10);} diff --git a/GasolineTanker.java b/GasolineTanker.java index 14e10fc..5eeb473 100644 --- a/GasolineTanker.java +++ b/GasolineTanker.java @@ -3,6 +3,7 @@ import java.awt.*; public class GasolineTanker extends BaseTanker{ private Color AdditionalColor; public Color GetAdditionalColor() {return AdditionalColor;} + public void setAdditionalColor(Color color) {AdditionalColor = color;} private boolean BodyKit; public boolean GetBodyKit() {return BodyKit;} private boolean Wing; diff --git a/IWheelDraw.java b/IWheelDraw.java index a4b7634..9099419 100644 --- a/IWheelDraw.java +++ b/IWheelDraw.java @@ -3,5 +3,6 @@ import java.awt.*; public interface IWheelDraw { void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d); void setWheelCount(int wheelCount); + int getWheelCount(); } diff --git a/Main.java b/Main.java index 5bbd9f0..0b46eec 100644 --- a/Main.java +++ b/Main.java @@ -1,7 +1,6 @@ public class Main { public static void main(String[] args) { GarageFrame a = new GarageFrame(); - //ComboFrame a = new ComboFrame(); a.setVisible(true); } } \ No newline at end of file -- 2.25.1 From 875e29316952e7f796b2386748c04ea9b673094b Mon Sep 17 00:00:00 2001 From: Sergey Kozyrev Date: Tue, 28 Nov 2023 18:11:06 +0400 Subject: [PATCH 2/2] SomethingStrange --- ConfigFrame.java | 429 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 429 insertions(+) create mode 100644 ConfigFrame.java diff --git a/ConfigFrame.java b/ConfigFrame.java new file mode 100644 index 0000000..6b60ac9 --- /dev/null +++ b/ConfigFrame.java @@ -0,0 +1,429 @@ +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; + +class DrawConfig extends JComponent { + public DrawTanker _tanker; + public DrawConfig() + { + _tanker = null; + } + private boolean IntToBool(int n) + { + return n > 0; + } + public void paintComponent(Graphics g) + { + if (_tanker == null) + return; + super.paintComponent(g); + Graphics2D g2d = (Graphics2D) g; + _tanker.DrawTransport(g); + super.repaint(); + } + +} + +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()); + } +} + +class ColorTransferable implements Transferable { + private Color color; + 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); + } +} + +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()); + } +} + +class LabelMouseAdapter extends MouseAdapter{ + @Override + public void mousePressed(MouseEvent e) { + ((JLabel)e.getComponent()).getTransferHandler().exportAsDrag(((JLabel)e.getComponent()), e, TransferHandler.COPY); + } +} + +class PanelMouseAdapter extends MouseAdapter{ + @Override + public void mousePressed(MouseEvent e) { + ((JPanel)e.getComponent()).getTransferHandler().exportAsDrag(((JPanel)e.getComponent()), e, TransferHandler.COPY); + } +} + +class WheelTransferable implements Transferable { + private IWheelDraw wheelDraw; + static final DataFlavor wheelDrawingDataFlavor = new DataFlavor(IWheelDraw.class, "Wheel Drawing"); + + public WheelTransferable(IWheelDraw wheelDrawing) { + wheelDraw = 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 wheelDraw; + } else { + throw new UnsupportedFlavorException(flavor); + } + } +} + +class ComponentWheel extends JComponent{ + public IWheelDraw wheelDraw; + + public ComponentWheel(IWheelDraw _wheelDrawing){ + wheelDraw = _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).wheelDraw); + } + } + ); + } + @Override + public void paintComponent (Graphics g){ + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + wheelDraw.DrawWheels(20,-40,Color.BLACK,g2d); + super.repaint(); + } +} + +public class ConfigFrame extends JFrame { + + public ConfigFrame() + { + initUI(); + } + + public JButton buttonAdd; + protected static final int Width = 1000; + protected static final int Height = 400; + DrawConfig Gasoline; + private void initUI() + { + Border border = BorderFactory.createLineBorder(Color.GRAY); + + JLabel labelSpeed = new JLabel("Speed"); + labelSpeed.setBounds(50, 10, 50, 50); + add(labelSpeed); + + JLabel labelWeight = new JLabel("Weight"); + labelWeight.setBounds(50, 60, 50, 50); + add(labelWeight); + + JLabel labelWheel = new JLabel("Wheel"); + labelWheel.setBounds(50, 110, 50, 50); + add(labelWheel); + + SpinnerModel spinnerModel = new SpinnerNumberModel(100, 100, 1000, 1); + SpinnerModel spinnerModel2 = new SpinnerNumberModel(100, 100, 1000, 1); + SpinnerModel spinnerModel3 = new SpinnerNumberModel(2, 2, 4, 1); + + JSpinner numericSpeed = new JSpinner(spinnerModel); + numericSpeed.setBounds(100, 20, 50, 30); + add(numericSpeed); + + JSpinner numericWeight = new JSpinner(spinnerModel2); + numericWeight.setBounds(100, 70, 50, 30); + add(numericWeight); + + JSpinner numericWheels = new JSpinner(spinnerModel3); + numericWheels.setBounds(100, 120, 50, 30); + add(numericWheels); + + JCheckBox checkBoxLight = new JCheckBox("Light"); + checkBoxLight.setBounds(50, 200, 100, 50); + add(checkBoxLight); + + JCheckBox checkBoxFuel = new JCheckBox("Fuel"); + checkBoxFuel.setBounds(50, 250, 100, 50); + add(checkBoxFuel); + + JCheckBox checkBoxSpeedLine = new JCheckBox("Speed Line"); + checkBoxSpeedLine.setBounds(50, 300, 100, 50); + add(checkBoxSpeedLine); + + 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.WHITE); + colorPanels[7].setBackground(Color.MAGENTA); + for (var i : colorPanels) + { + i.setTransferHandler(new PanelTransferHandler()); + i.addMouseListener(new PanelMouseAdapter()); + } + + for (int i = 0; i < 8; i++) + { + colorPanels[i].setBounds(300 + 50 * (i % 4), 50 + i / 4 * 50, 50, 50); + add(colorPanels[i]); + } + + JLabel labelBase = new JLabel("Base"); + labelBase.setTransferHandler(new LabelTransferHandler()); + labelBase.addMouseListener(new LabelMouseAdapter()); + labelBase.setBorder(border); + labelBase.setHorizontalAlignment(SwingConstants.CENTER); + labelBase.setVerticalAlignment(SwingConstants.CENTER); + labelBase.setBounds(300, 200, 100, 50); + add(labelBase); + + JLabel labelUpdate = new JLabel("Updated"); + labelUpdate.setTransferHandler(new LabelTransferHandler()); + labelUpdate.addMouseListener(new LabelMouseAdapter()); + labelUpdate.setBorder(border); + labelUpdate.setHorizontalAlignment(SwingConstants.CENTER); + labelUpdate.setVerticalAlignment(SwingConstants.CENTER); + labelUpdate.setBounds(400, 200, 100, 50); + add(labelUpdate); + + JLabel labelColor = new JLabel("BaseColor"); + labelColor.setBorder(border); + labelColor.setVerticalAlignment(SwingConstants.CENTER); + labelColor.setHorizontalAlignment(SwingConstants.CENTER); + labelColor.setBounds(600, 50, 100, 50); + add(labelColor); + labelColor.setTransferHandler(new TransferHandler(){ + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor); + } + + @Override + public boolean importData(TransferSupport support) { + if (canImport(support)) + { + try + { + Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + if (Gasoline._tanker == null) + return false; + Gasoline._tanker.GasolineTanker.setBodyColor(color); + Gasoline.repaint(); + return true; + } + catch (UnsupportedFlavorException | IOException e) + { + e.printStackTrace(); + } + } + return false; + } + }); + + JLabel labelAddColor = new JLabel("AddColor"); + labelAddColor.setBorder(border); + labelAddColor.setHorizontalAlignment(SwingConstants.CENTER); + labelAddColor.setVerticalAlignment(SwingConstants.CENTER); + labelAddColor.setBounds(700, 50, 100, 50); + add(labelAddColor); + labelAddColor.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); + if (Gasoline._tanker == null) + return false; + if (!(Gasoline._tanker instanceof DrawGasolineTanker)) + return false; + ((GasolineTanker)Gasoline._tanker.GasolineTanker).setAdditionalColor(color); + return true; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + + JLabel labelWheels = new JLabel("Wheels"); + labelWheels.setBorder(border); + labelWheels.setHorizontalAlignment(SwingConstants.CENTER); + labelWheels.setVerticalAlignment(SwingConstants.CENTER); + labelWheels.setBounds(800, 50, 100, 50); + add(labelWheels); + labelWheels.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 { + IWheelDraw wheelDrawing = (IWheelDraw) support.getTransferable().getTransferData(WheelTransferable.wheelDrawingDataFlavor); + if (Gasoline._tanker == null) + return false; + wheelDrawing.setWheelCount(Gasoline._tanker.wheelsDrawing.getWheelCount()); + Gasoline._tanker.wheelsDrawing = wheelDrawing; + Gasoline.repaint(); + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + + setSize(Width, Height); + setTitle("TankGasoline"); + setLocationRelativeTo(null); + setLayout(null); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setResizable(false); + Gasoline = new DrawConfig(); + Gasoline.setBounds(600, 100, 300, 200); + add(Gasoline); + Gasoline.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 "Base": + Gasoline._tanker = new DrawTanker((int)numericSpeed.getValue(), (int)numericWeight.getValue(), Color.WHITE, Width,Height, (int)numericWheels.getValue()); + break; + case "Updated": + Gasoline._tanker = new DrawGasolineTanker((int)numericSpeed.getValue(), (int)numericWeight.getValue(), Color.WHITE, Color.BLACK, checkBoxFuel.isSelected(), checkBoxLight.isSelected(), checkBoxSpeedLine.isSelected(), Width, Height, (int)numericWheels.getValue()); + break; + } + Gasoline.repaint(); + return true; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + } + return false; + } + } + ); + + ComponentWheel componentWheelCircle = new ComponentWheel(new DrawWheelCircle()); + ComponentWheel componentWheelClassic = new ComponentWheel(new DrawWheelClassic()); + ComponentWheel componentWheelSquare = new ComponentWheel(new DrawWheelSquare()); + componentWheelCircle.setBounds(300, 250, 50, 50); + add(componentWheelCircle); + componentWheelClassic.setBounds(350, 250, 50, 50); + add(componentWheelClassic); + componentWheelSquare.setBounds(400, 250, 50, 50); + add(componentWheelSquare); + + buttonAdd = new JButton("Add"); + buttonAdd.setBounds(600, 300, 100, 50); + add(buttonAdd); + + JButton buttonCancel = new JButton("Cancel"); + buttonCancel.setBounds(700, 300, 100, 50); + add(buttonCancel); + + buttonCancel.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + } + + + +} + -- 2.25.1