Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 16
1

Написал программу добавления и удаления фигур

10.05.2018, 19:44. Показов 1890. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
НО НЕМОГУ РАЗОБРАТЬСЯ В ОДНОМ.ВСЮ ГОЛОВУ СЛОМАЛ.Как сделать так чтобы фигуры при добавлении ещё и ДВИГАЛИСЬ.Пробовал задавать Timer но ничего не выходит при нажатии добавления((((((((((((((((((((((Студент 2 курса. Помогите пожалуйста буду очень благодарен!!!!
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import java.util.List;
 
 
public class FramePaint extends JFrame {
    private static int counter = 0;
    private int nSShape = 1;
    private static Random rnd = new Random();
    private double scale;
    private Timer timer;
 
    private JButton jButton = new JButton("Circle");
    private JButton jButton2 = new JButton("Rect");
    private JButton jButton3 = new JButton("Delete");
 
 
 
    private class SShape {
        private Color color;
        private double x; // 0..100%
        private double y; // 0..100%
        private double length; // 0..100%
        private boolean type;
 
        public SShape(Color color, double x, double y, double radius, boolean type) {
            this.color = color;
            this.x = x;
            this.y = y;
            this.length = radius;
            this.type = type;
            scale = 1.0;
           // timer = new Timer(100, (ActionListener) this);
        }
 
        public Color getColor() {
            return color;
        }
 
        public double getX() {
            return x;
        }
 
        public double getY() {
            return y;
        }
 
        public double getLength() {
            return length;
        }
 
        public boolean isType() {
            return type;
        }
 
        public void setType(boolean type) {
            this.type = type;
        }
    }
 
    private class SJPanel extends JPanel {  // панель со своим потоком и локальной фоновой задаче
        private final int id = counter++;
        private Color color;
        private double radius;
        List<SShape> list = new ArrayList<>();
 
        private SShape genSShape() {
            Color color = new Color(rnd.nextInt(0xFFFFFF));
            double x = rnd.nextDouble()*0.9;
            double y = rnd.nextDouble()*0.9;
            double length = rnd.nextDouble()*0.9;  // диаметр или длина
            boolean type = rnd.nextBoolean();
            return new SShape(color, x, y, length, type);
 
        }
 
        public synchronized void addSShape(boolean type) {
            SShape sShape = genSShape();
            sShape.setType(type);
            list.add(sShape);
            
            repaint();
        }
 
        public synchronized void removeSShape() {
            if (list.size() > 0) {
                list.remove(list.size()-1); // remove last
                repaint();
            }
        }
 
        public SJPanel(int size) {      // начальный размер списка фигур
            for (int i = 0; i < size; i++) {
                list.add(genSShape());
            }
        }
 
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);  // вызывать обязательно чтобы не было искажений
            int width = getWidth(); // размер панели
 
            for (int i = 0; i < list.size(); i++) {
                SShape sShape = list.get(i);
                int x = (int)(width* sShape.getX());
                int y = (int)(width* sShape.getY());
                int length = (int)(width* sShape.getLength()/4);  // 1/4 и половина
                if (sShape.isType()) {
                    g.setColor(sShape.getColor());
                    g.fillOval(x, y, length, length);
                    //x++;
                   // y++;
                }else{
                    g.setColor(sShape.getColor());
                    g.fillRect(x, y, length, length);
                    //x++;
                   // y++;
                }
            }
        }
 
 
        @Override
        public String toString() {
            return "CBox " + id;
        }
    }
 
 
 
    public FramePaint() {
        SJPanel sjPanel = new SJPanel(nSShape); // 8 объектов
        JPanel jPanel = new JPanel(new GridLayout(1,3));
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
               
                //sjPanel.addSShape(true);// add circle
            }
        });
        jButton2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sjPanel.addSShape(false);// add rect
            }
        });
        jButton3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sjPanel.removeSShape();// remove last
            }
        });
 
        jPanel.add(jButton);
        jPanel.add(jButton2);
        jPanel.add(jButton3);
 
        add(sjPanel);
        add(jPanel,BorderLayout.SOUTH); // внизу три кнопки
 
    }
 
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                FramePaint jFrame = new FramePaint();
                jFrame.setSize(500, 600);
                jFrame.setVisible(true);
 
            }
        });
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2018, 19:44
Ответы с готовыми решениями:

Написать программу со стеком в которой должна быть возможность добавления, сортировки, удаления и поиска данных
Ну в общем написать программу со стеком в которой должна быть возможность добавления, сортировки,...

написал программу для этой формулы. Скажите правильно ли я написал ее
написал программу для этой формулы. Скажите правильно ли я написал ее #include &quot;stdafx.h&quot;...

Напишите программу, реализующую работу очереди. Напишите функции для добавления/удаления элемента в очередь
Помогите пожалуйста написать программу. Готовый Queue не нужен( Нужно изобрести велосипед заново. ...

корзина удаления и добавления
подскажите как реализовать, в корзине есть кнопка добавить товар при нажатии на неё, записывается...

12
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
12.05.2018, 11:13 2
https://www.cyberforum.ru/java-gui/ жмешь ссылку "Искать в этом разделе" пишешь "движение" и не поверишь, как много помощи увидишь
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
12.05.2018, 11:49 3
Простите что не по вашему коду, но из этого простого примера вы поймете как двигать фигуры

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
 
 
public class LetsGo
{
    public JFrame window = new JFrame();
    public JLabel character = new JLabel();
    public int cX = 300;
    public int cY = 300;
    
    
    public LetsGo()
    {
        makeJFrame();
        makeCharacter();
    }
    
    
    private void makeJFrame()
    {
        window = new JFrame("");
        window.setSize(800, 600);   
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeCharacter()
    {
        character.setBounds(cX, cY, 30, 30);
        character.setOpaque(true);
        character.setLayout(null);
        window.add(character);
        window.repaint();
        
        Timer fpsTimer = new Timer(15, new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                cX++;
                cY--;
                character.setLocation(cX, cY);
            }
        });
        fpsTimer.start();
    }
    
    
    public static void main(String[] args)
    {
        new LetsGo();
    }
}
0
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 16
12.05.2018, 16:21  [ТС] 4
Спасибо большое, простите но я новичок в java и незнаю что как правильно вставить хотелось бы конечно чтобы по моему коду немножко поменять его мне самому разобраться....А можно программу с движением фигур чтобы именно от бортика отскакивало???
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
13.05.2018, 03:46 5
коллизия это не так сложно как кажется, просто есть 2 основных метода, каждый для своей задачи:
Пример 1 - обратите внимание что достаточно при выполнения условия изменить значение скорости с отрицательно на положительный и наоборот, недостаток это метода в том что вы не можете применять рандомные значения скорости, вы просто застрянете в текстурах при отражении если новая скорость будет ниже предыдущей, это не ошибка это норма так как все на экране движется асинхронно.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
 
 
public class LetsGo
{
    public JFrame window = new JFrame();
    public JLabel character = new JLabel();
    public int[] characterXY = {300,300};
    
    
    public LetsGo()
    {
        makeJFrame();
        makeCharacter();
    }
    
    
    private void makeJFrame()
    {
        window = new JFrame("");
        window.setSize(800, 600);   
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeCharacter()
    {
        character.setBounds(characterXY[0], characterXY[1], 30, 30);
        character.setOpaque(true);
        character.setLayout(null);
        window.add(character);
        window.repaint();
        
        Timer fpsTimer = new Timer(15, new ActionListener()
        {
            int[] speedXY = {1,1};
        
            
            public void actionPerformed(ActionEvent e)
            {   
                characterXY[0] += speedXY[0];
                characterXY[1] += speedXY[1];
                character.setLocation(characterXY[0], characterXY[1]);
                
                if (characterXY[0] + character.getWidth() > 700 
                        || characterXY[0] < 0)
                {
                    speedXY[0] *= -1;
                }
                else if (characterXY[1] + character.getHeight() > 500
                        || characterXY[1] < 0)
                {
                    speedXY[1] *= -1;
                }
            }
        });
        fpsTimer.start();
    }
    
    
    public static void main(String[] args)
    {
        new LetsGo();
    }
}
Пример 2 - он можно сказать решает эту задачу, если в первом случае мы как бы отражали скорость, то здесь мы должны изменить скорость и напечатать объект ровно на контрольной точке столкновения (иначе как я говорил застрянете).

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
 
 
public class LetsGo
{
    public JFrame window = new JFrame();
    public JLabel character = new JLabel();
    public int[] characterXY = {300,300};
    
    
    public LetsGo()
    {
        makeJFrame();
        makeCharacter();
    }
    
    
    private void makeJFrame()
    {
        window = new JFrame("");
        window.setSize(800, 600);   
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeCharacter()
    {
        character.setBounds(characterXY[0], characterXY[1], 30, 30);
        character.setOpaque(true);
        character.setLayout(null);
        window.add(character);
        window.repaint();
        
        Timer fpsTimer = new Timer(15, new ActionListener()
        {
            int[] arrSpeed = {3,6,9,12};
            int[] speedControlXY = {1,1};
            int[] speedXY = {arrSpeed[new Random().nextInt(arrSpeed.length)],
                    arrSpeed[new Random().nextInt(arrSpeed.length)]};
        
            
            public void actionPerformed(ActionEvent e)
            {   
                characterXY[0] += speedXY[0];
                characterXY[1] += speedXY[1];
                character.setLocation(characterXY[0], characterXY[1]);
                
                if (characterXY[0] + character.getWidth() > 700)
                {
                    characterXY[0] = 700 - character.getWidth();
                    speedControlXY[0] *= -1;
                    speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                }
                else if (characterXY[0] < 0)
                {
                    characterXY[0] = 0;
                    speedControlXY[0] *= -1;
                    speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                }
                else if (characterXY[1] < 0)
                {
                    characterXY[1] = 0;
                    speedControlXY[1] *= -1;
                    speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                }
                else if (characterXY[1] + character.getHeight() > 500)
                {
                    characterXY[1] = 500 - character.getHeight();
                    speedControlXY[1] *= -1;
                    speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                }
            }
        });
        fpsTimer.start();
    }
    
    
    public static void main(String[] args)
    {
        new LetsGo();
    }
}
0
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 16
13.05.2018, 15:30  [ТС] 6
Спасибо за подсказки но по моему коду то не очень получается...ДОБАВИЛ таймер все как вы выше описали но выдаёт ошибку в 106 строчке.Можете пожалуйста посмотреть, фигуры никак не хотят двигаться(((
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import java.util.List;
 
 
public class FramePaint extends JFrame {
    private static int counter = 0;
    private int nSShape = 1;
    private static Random rnd = new Random();
    private double scale;
    public int Cx;
    public int Cy;
    
 
    private JButton jButton = new JButton("Circle");
    private JButton jButton2 = new JButton("Rect");
    private JButton jButton3 = new JButton("Delete");
    
          
    private class SShape {
        private Color color;
        private double x; // 0..100%
        private double y; // 0..100%
        private double length; // 0..100%
        private boolean type;
        private final int Cx;
        private final int Cy;
        
 
        public SShape(Color color,int Cx, int Cy,double x, double y, double radius, boolean type) {
            this.color = color;
            this.x = x;
            this.y = y;
            this.length = radius;
            this.type = type;
            this.Cx =Cx;
            this.Cy =Cy;
            scale = 1.0;
           // timer = new Timer(100, (ActionListener) this);
        }
 
        public Color getColor() {
            return color;
        }
 
        public double getX() {
            return x;
        }
 
        public double getY() {
            return y;
        }
 
        public double getLength() {
            return length;
            
        }
 
        public boolean isType() {
            return type;
        }
 
        public void setType(boolean type) {
            this.type = type;
        }
 
        
    }
 
    private class SJPanel extends JPanel {  // панель со своим потоком и локальной фоновой задаче
        private final int id = counter++;
        private Color color;
        private double radius;
         public static final int DEFAULT_WIDTH = 725;
        public static final int DEFAULT_HEIGHT = 700;
        List<SShape> list = new ArrayList<>();
 
        private SShape genSShape() {
            Color color = new Color(rnd.nextInt(0xFFFFFF));
            double x = rnd.nextDouble()*0.9;
            double y = rnd.nextDouble()*0.9;
            double length = rnd.nextDouble()*0.9;  // диаметр или длина
            boolean type = rnd.nextBoolean();
            int Cx = rnd.nextInt();
            int Cy = rnd.nextInt();
            return new SShape(color,Cx,Cy, x, y, length, type);
            
        }
 
        public synchronized void addSShape(boolean type) {
            SShape sShape = genSShape();
            sShape.setType(type);
            list.add(sShape);
            repaint();
        
             Timer fpsTimer = new Timer(15, new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                Cx++;
                Cy--;
                sShape.setLocation(Cx, Cy);
            }
        });
        fpsTimer.start();
        }       
 
        public synchronized void removeSShape() {
            if (list.size() > 0) {
                list.remove(list.size()-1); // remove last
                repaint();
            }
        }
 
        public SJPanel(int size) {      // начальный размер списка фигур
            for (int i = 0; i < size; i++) {
                list.add(genSShape());
            }
        }
 
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);  // вызывать обязательно чтобы не было искажений
            int width = getWidth(); // размер панели
 
            for (int i = 0; i < list.size(); i++) {
                SShape sShape = list.get(i);
                int x = (int)(width* sShape.getX());
                int y = (int)(width* sShape.getY());
                int length = (int)(width* sShape.getLength()/4);  // 1/4 и половина
                if (sShape.isType()) {
                    g.setColor(sShape.getColor());
                    g.fillOval(x, y, length, length);
                    //x++;
                   // y++;
                }else{
                    g.setColor(sShape.getColor());
                    g.fillRect(x, y, length, length);
                    //x++;
                   // y++;
                }
            }
        }
 
 
        @Override
        public String toString() {
            return "CBox " + id;
        }
    }
 
 
 
    public FramePaint() {
        SJPanel sjPanel = new SJPanel(nSShape); // 8 объектов
        JPanel jPanel = new JPanel(new GridLayout(1,3));
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
               
                sjPanel.addSShape(true);// add circle
            }
        });
        jButton2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sjPanel.addSShape(false);// add rect
            }
        });
        jButton3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sjPanel.removeSShape();// remove last
            }
        });
 
        jPanel.add(jButton);
        jPanel.add(jButton2);
        jPanel.add(jButton3);
 
        add(sjPanel);
        add(jPanel,BorderLayout.SOUTH); // внизу три кнопки
 
    }
 
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                FramePaint jFrame = new FramePaint();
                jFrame.setSize(500, 600);
                jFrame.setVisible(true);
 
            }
        });
    }
 
}
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
13.05.2018, 18:15 7
Простите но рассмотреть вашу код я не могу, он не понятен мне, я не понимаю ваш ход мыслей и почему вы решаете эту задачу именно так. Поясните сколько фигур добавляют ваши кнопки ? сколько раз нажмете столько фигур или только одно нажатие одна фигу и все, если так то кнопка делете не нужно можно удалять при повторном нажатии, если создавать фигуры бесчисленное множество то кнопка делите должна иметь любопытный механизм скажем так удалять первый клип а не последний в очереди.

давайте я лучше напишу класс и 2 кнопки как это сделал бы я и там посмотрим, вы увидите что у меня код выйдет раза в 2 меньше и проще

Добавлено через 13 минут
и вот еще, объект у которого есть поток не так просто удалить, для начала поток нужно остановить, поэтому ваша кнопка делете здесь не к месту, нужен иной механизм если удаление так важно при условии если фигуры создавать бесчисленное множество, если у вас кнопки создают каждая по фигуре и всего два объекта то эта задача несложно решаеться
0
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 16
13.05.2018, 20:47  [ТС] 8
ДВЕ кнопки добавлют КРУГ и КВАДРАТ бесконечное множество раз. Кнопка удалить удаляет последний элемент в очереди.
Я просто хочу чтобы эти фигуры при добавлении двигались но таймер не хочет работать(( Если поможете я вам конечно буду суперски благодарен!!!
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
13.05.2018, 21:07 9
ох немного поторопился, 2 объекта при клике создается один при повторном удаляется

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
 
 
public class Box
{
    public JFrame window = new JFrame();
    public JButton[] bt = new JButton[2];
    public String[] btNames = {"box", "oval"};
    public BaseEnemy TypeEnemy[] = new BaseEnemy[2];
    
    
    public Box()
    {
        makeWindow();
        makeButtons();
    }
    
    
    private void makeWindow()
    {
        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(800, 600));
        panel.setOpaque(false);
        
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setResizable(false);
        window.add(panel);
        window.pack();
        window.setLayout(null);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeButtons()
    {
        for (int i = 0; i < bt.length; i++)
        {
            bt[i] = new JButton();
            bt[i].setBounds(20+i*100, 20, 90, 25);
            bt[i].setText(btNames[i]);
            bt[i].setName(i+"");
            bt[i].setForeground(Color.BLACK);
            bt[i].setOpaque(false);
            bt[i].setContentAreaFilled(true);
            bt[i].setBorderPainted(true);
            bt[i].setFocusPainted(false);
            bt[i].setLayout(null);
            bt[i].addActionListener(new ActionListener()
            {
                int make_del = 1;
                
                public void actionPerformed(ActionEvent e)
                {   
                    if (make_del == 1)
                    {
                        TypeEnemy[Integer.parseInt(((JButton) e.getSource()).getName())]
                                  = new BaseEnemy(Integer.parseInt(((JButton) e.getSource()).getName()));
                        window.add(TypeEnemy[Integer.parseInt(((JButton) e.getSource()).getName())]);
                        window.repaint();
                    }
                    else
                    {
                        TypeEnemy[Integer.parseInt(((JButton) e.getSource()).getName())].fpsTimer.stop();
                        TypeEnemy[Integer.parseInt(((JButton) e.getSource()).getName())].fpsTimer.removeActionListener(this);
                        window.remove(TypeEnemy[Integer.parseInt(((JButton) e.getSource()).getName())]);
                        window.repaint();
                    }
                    
                    make_del *= -1;
                }
            });
                   
            window.add(bt[i]);
        }
    }
    
    
    public class BaseEnemy extends JLabel
    {   
        private static final long serialVersionUID = 1L;
        int x = new Random().nextInt(700 - 100) + 100;
        int y = new Random().nextInt(500 - 100) + 100;
        int w = new Random().nextInt(50 - 20) + 20;
        int h = new Random().nextInt(50 - 20) + 20;
        int[] characterXY = {x,y};
        Timer fpsTimer;
        int type;
        
        public BaseEnemy(int n)
        {       
            setBounds(x, y, w, h);
            type = n;
            
            fpsTimer = new Timer(15, new ActionListener()
            {
                int[] arrSpeed = {3,6,9,12};
                int[] speedControlXY = {1,1};
                int[] speedXY = {arrSpeed[new Random().nextInt(arrSpeed.length)],
                        arrSpeed[new Random().nextInt(arrSpeed.length)]};
            
                
                public void actionPerformed(ActionEvent e)
                {   
                    characterXY[0] += speedXY[0];
                    characterXY[1] += speedXY[1];
                    setLocation(characterXY[0], characterXY[1]);
                    
                    if (characterXY[0] + getWidth() > 700)
                    {
                        characterXY[0] = 700 - getWidth();
                        speedControlXY[0] *= -1;
                        speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                    }
                    else if (characterXY[0] < 0)
                    {
                        characterXY[0] = 0;
                        speedControlXY[0] *= -1;
                        speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                    }
                    else if (characterXY[1] < 0)
                    {
                        characterXY[1] = 0;
                        speedControlXY[1] *= -1;
                        speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                    }
                    else if (characterXY[1] + getHeight() > 500)
                    {
                        characterXY[1] = 500 - getHeight();
                        speedControlXY[1] *= -1;
                        speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                    }
                }
            });
            fpsTimer.start();
        }
        
        
        public void paintComponent(Graphics g)
        {   
            if (type == 0)
            {
                g.setColor(new Color(120,190,255));
                g.fillRect(0, 0, getWidth(), getHeight());
            }
            else if (type == 1)
            {
                g.setColor(new Color(20,190,155));
                g.fillOval(0, 0, getWidth(), getHeight());
            }
            
            repaint();
        }
    }
    
    
    public static void main(String[] args)
    {
        new Box();
    }
}

про бесконечное копирование надо подумать, наклепать то проблемы нет, чтобы удалить класс его надо обозначить, и тут надо думать, можно конечно конструкторами делать но опять же потоки, объект удалите а поток будет работать и грузить систему. Одной кнопкой делете не обойтись слишком сложный механизм получается, под каждый тип своя кнопка удаления нужна
0
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 16
13.05.2018, 21:40  [ТС] 10
Спасибо вам огромное )Но все же это неподходит, по заданию стоит бесконечное множество чтобы было фигур.Я хоть и написал программу без движения но как я понял её уже не исправить чтобы фигуры двигались((((((((А если даже попробовать хоть чуть чуть с потоками и с двумя кнопками удаления это тяжело осуществить будет????
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
14.05.2018, 02:42 11
Лучший ответ Сообщение было отмечено Alexandro1998 как решение

Решение

ну не так и трудно, просто выше я поторопился думал хва объекта вам нужно.
Главное не паниковать, на панику тоже нужно время.

Немного вот здесь поправим, здесь добавим и думаю вот оно )

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
 
 
public class Go
{
    public JFrame window = new JFrame();
    public JButton[] bt = new JButton[4];
    public String[] btNames = {"box", "oval", "delBox", "delOval"};
    public ArrayList<BaseEnemy> classBox = new ArrayList<BaseEnemy>();
    public ArrayList<BaseEnemy> classOval = new ArrayList<BaseEnemy>();
    
    public Go()
    {
        makeWindow();
        makeButtons();
    }
    
    
    private void makeWindow()
    {
        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(800, 600));
        panel.setOpaque(false);
        
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setResizable(false);
        window.add(panel);
        window.pack();
        window.setLayout(null);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeButtons()
    {
        for (int i = 0; i < bt.length; i++)
        {
            bt[i] = new JButton();
            bt[i].setBounds(20+i*100, 20, 90, 25);
            bt[i].setText(btNames[i]);
            bt[i].setName(i+"");
            bt[i].setForeground(Color.BLACK);
            bt[i].setOpaque(false);
            bt[i].setContentAreaFilled(true);
            bt[i].setBorderPainted(true);
            bt[i].setFocusPainted(false);
            bt[i].setLayout(null);
            bt[i].addActionListener(new ActionListener()
            {
                int num = -1;
                
                
                public void actionPerformed(ActionEvent e)
                {   
                    if (Integer.parseInt(((JButton) e.getSource()).getName()) == 0)
                    {
                        num++;
                        BaseEnemy Type = new BaseEnemy(Integer.parseInt(((JButton) e.getSource()).getName()));
                        classBox.add(Type);
                        
                        window.add(Type);
                        window.repaint();
                    }
                    else if (Integer.parseInt(((JButton) e.getSource()).getName()) == 1)
                    {
                        num++;
                        BaseEnemy Type = new BaseEnemy(Integer.parseInt(((JButton) e.getSource()).getName()));
                        classOval.add(Type);
                        
                        window.add(Type);
                        window.repaint();
                    }
                    else if (Integer.parseInt(((JButton) e.getSource()).getName()) == 2)
                    {
                        if (num < classBox.size() - 1)
                        {
                            num++;
                            classBox.get(num).fpsTimer.stop();
                            classBox.get(num).fpsTimer.removeActionListener(this);
                            window.remove(classBox.get(num));
                            window.repaint();
                        }
                    }
                    else if (Integer.parseInt(((JButton) e.getSource()).getName()) == 3)
                    {
                        if (num < classOval.size() - 1)
                        {
                            num++;
                            classOval.get(num).fpsTimer.stop();
                            classOval.get(num).fpsTimer.removeActionListener(this);
                            window.remove(classOval.get(num));
                            window.repaint();
                        }
                    }
                }
            });
                   
            window.add(bt[i]);
        }
    }
    
    
    public class BaseEnemy extends JLabel
    {   
        private static final long serialVersionUID = 1L;
        int x = new Random().nextInt(700 - 100) + 100;
        int y = new Random().nextInt(500 - 100) + 100;
        int w = new Random().nextInt(50 - 20) + 20;
        int h = new Random().nextInt(50 - 20) + 20;
        int[] characterXY = {x,y};
        Timer fpsTimer;
        int type;
        
        
        public BaseEnemy(int n)
        {       
            setBounds(x, y, w, h);
            type = n;
            
            fpsTimer = new Timer(15, new ActionListener()
            {
                int[] arrSpeed = {3,6,9,12};
                int[] speedControlXY = {1,1};
                int[] speedXY = {arrSpeed[new Random().nextInt(arrSpeed.length)],
                        arrSpeed[new Random().nextInt(arrSpeed.length)]};
            
                
                public void actionPerformed(ActionEvent e)
                {   
                    characterXY[0] += speedXY[0];
                    characterXY[1] += speedXY[1];
                    setLocation(characterXY[0], characterXY[1]);
                    
                    if (characterXY[0] + getWidth() > 700)
                    {
                        characterXY[0] = 700 - getWidth();
                        speedControlXY[0] *= -1;
                        speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                    }
                    else if (characterXY[0] < 0)
                    {
                        characterXY[0] = 0;
                        speedControlXY[0] *= -1;
                        speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                    }
                    else if (characterXY[1] < 0)
                    {
                        characterXY[1] = 0;
                        speedControlXY[1] *= -1;
                        speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                    }
                    else if (characterXY[1] + getHeight() > 500)
                    {
                        characterXY[1] = 500 - getHeight();
                        speedControlXY[1] *= -1;
                        speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                    }
                }
            });
            fpsTimer.start();
        }
        
        
        public void paintComponent(Graphics g)
        {   
            if (type == 0)
            {
                g.setColor(new Color(120,190,255));
                g.fillRect(0, 0, getWidth(), getHeight());
            }
            else if (type == 1)
            {
                g.setColor(new Color(20,190,155));
                g.fillOval(0, 0, getWidth(), getHeight());
            }
            
            repaint();
        }
    }
    
    
    public static void main(String[] args)
    {
        new Go();
    }
}
таймеры это тоже как бы потоки (хотя далеко далеко на заре времен потоки и таймерыназывали одним словом "долбилки"),
если их не останавливать они прекрасно живут где то там :3

о сейчас уже все яснее картинка ) можно и один делете в принципе сделать )
но здесь простите меня оставляю все вам

Добавлено через 5 минут
таймеры легче останавливать а с потоками много возни, надо флаги ставить на остановку и так далее (так поток должен понять сам когда ему остановить или другие потоки потоки городить), но я вовсе не отговариваю вас от применения потоков thread к месту они тоже очень вкусны и питательны, я например на них часто фоновую музыку цепляю )) ну и много чего еще. Но все это моя практика, у вас все будет так как вам удобно.

Добавлено через 31 минуту
эх )

вот и одна кнопка делете, по описанию все как у вас

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
 
 
public class Go
{
    public JFrame window = new JFrame();
    public JButton[] bt = new JButton[3];
    public String[] btNames = {"box", "oval", "delete"};
    public ArrayList<BaseEnemy> classEnemy = new ArrayList<BaseEnemy>();
    
    
    public Go()
    {
        makeWindow();
        makeButtons();
    }
    
    
    private void makeWindow()
    {
        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(800, 600));
        panel.setOpaque(false);
        
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setResizable(false);
        window.add(panel);
        window.pack();
        window.setLayout(null);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeButtons()
    {
        for (int i = 0; i < bt.length; i++)
        {
            bt[i] = new JButton();
            bt[i].setBounds(20+i*100, 20, 90, 25);
            bt[i].setText(btNames[i]);
            bt[i].setName(i+"");
            bt[i].setForeground(Color.BLACK);
            bt[i].setOpaque(false);
            bt[i].setContentAreaFilled(true);
            bt[i].setBorderPainted(true);
            bt[i].setFocusPainted(false);
            bt[i].setLayout(null);
            bt[i].addActionListener(new ActionListener()
            {       
                int d = -1;
                
                
                public void actionPerformed(ActionEvent e)
                {   
                    if (Integer.parseInt(((JButton) e.getSource()).getName()) == 0)
                    {
                        BaseEnemy Type = new BaseEnemy(Integer.parseInt(((JButton) e.getSource()).getName()));
                        classEnemy.add(Type);
                        
                        window.add(Type);
                        window.repaint();
                    }
                    else if (Integer.parseInt(((JButton) e.getSource()).getName()) == 1)
                    {
                        BaseEnemy Type = new BaseEnemy(Integer.parseInt(((JButton) e.getSource()).getName()));
                        classEnemy.add(Type);
                        
                        window.add(Type);
                        window.repaint();
                    }
                    else if (Integer.parseInt(((JButton) e.getSource()).getName()) == 2)
                    {
                        if (d < classEnemy.size() - 1)
                        {
                            d++;
                            classEnemy.get(d).fpsTimer.stop();
                            classEnemy.get(d).fpsTimer.removeActionListener(this);
                            window.remove(classEnemy.get(d));
                            window.repaint();
                            
                            System.out.println(d);
                            System.out.println(classEnemy.size());
                        }
                    }
                }
            });
                   
            window.add(bt[i]);
        }
    }
    
    
    public class BaseEnemy extends JLabel
    {   
        private static final long serialVersionUID = 1L;
        int x = new Random().nextInt(700 - 100) + 100;
        int y = new Random().nextInt(500 - 100) + 100;
        int w = new Random().nextInt(50 - 20) + 20;
        int h = new Random().nextInt(50 - 20) + 20;
        int[] characterXY = {x,y};
        Timer fpsTimer;
        int type;
        
        
        public BaseEnemy(int n)
        {       
            setBounds(x, y, w, h);
            type = n;
            
            fpsTimer = new Timer(15, new ActionListener()
            {
                int[] arrSpeed = {3,6,9,12};
                int[] speedControlXY = {1,1};
                int[] speedXY = {arrSpeed[new Random().nextInt(arrSpeed.length)],
                        arrSpeed[new Random().nextInt(arrSpeed.length)]};
            
                
                public void actionPerformed(ActionEvent e)
                {   
                    characterXY[0] += speedXY[0];
                    characterXY[1] += speedXY[1];
                    setLocation(characterXY[0], characterXY[1]);
                    
                    if (characterXY[0] + getWidth() > 700)
                    {
                        characterXY[0] = 700 - getWidth();
                        speedControlXY[0] *= -1;
                        speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                    }
                    else if (characterXY[0] < 0)
                    {
                        characterXY[0] = 0;
                        speedControlXY[0] *= -1;
                        speedXY[0] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[0];
                    }
                    else if (characterXY[1] < 0)
                    {
                        characterXY[1] = 0;
                        speedControlXY[1] *= -1;
                        speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                    }
                    else if (characterXY[1] + getHeight() > 500)
                    {
                        characterXY[1] = 500 - getHeight();
                        speedControlXY[1] *= -1;
                        speedXY[1] = arrSpeed[new Random().nextInt(arrSpeed.length)] * speedControlXY[1];
                    }
                }
            });
            fpsTimer.start();
        }
        
        
        public void paintComponent(Graphics g)
        {   
            if (type == 0)
            {
                g.setColor(new Color(120,190,255));
                g.fillRect(0, 0, getWidth(), getHeight());
            }
            else if (type == 1)
            {
                g.setColor(new Color(20,190,155));
                g.fillOval(0, 0, getWidth(), getHeight());
            }
            
            repaint();
        }
    }
    
    
    public static void main(String[] args)
    {
        new Go();
    }
}
1
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 16
14.05.2018, 19:38  [ТС] 12
Я хочу вам выразить отдельную благодарность спасибо вам огромнейшее)))))ВЫ ПРОСТО СУПЕР)

Добавлено через 1 минуту
Всё же самому интересно стало )А если бы было две кнопки удаления каждого,я просто никогда не разбирался в жизни с потоками ,или можно хотябы ваш примерчик как вы музыку с потоками вставляете и как работают потоки)

Добавлено через 6 минут
ОЙ Я НЕ УВИДЕЛ ЧТО ВЫ НАПИСАЛИ ЕЩЁ С ДВУМЯ КНОПКАМИ))) Блин СПАСИБО ВАМ!!! ВСЕ ПОНЯТНО И КРАСИВО НАПИСАНО )))))))
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
14.05.2018, 23:53 13
про потоки вот здесь когда то отвечал )
Как сделать обновление страницы каждую секунду

если вы проигрываете формат wav то здесь потоки и не нужны, а вот если mp3 то здесь нужен таймер или поток чтобы зациклить музыку. (для mp3 нужна дополнительная библиотека)
также запомните что никогда не останавливаете поток, ну только если скажем так он вообще будет не нужен. Остановленный поток в отличии от таймера вы уже не запустите.

а так если в играх музыку цеплять на отдельные потоки то все шустрее работает )

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javazoom.jl.player.Player;
 
 
public class Sound
{
    public JFrame window = new JFrame();
    public Player playMP3;
    public boolean stopThread = true;
    public int n = 0;
    
    
    public Sound()
    {
        makeWindow();
        makeThread();
        makeButton();
    }
    
    
    private void makeThread()
    {
        Counter go = new Counter();
        go.start();
    }
    
    
    private void makeWindow()
    {
        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(800, 600));
        panel.setOpaque(false);
        
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setResizable(false);
        window.add(panel);
        window.pack();
        window.setLayout(null);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeButton()
    {
        JButton bt = new JButton();
        bt.setBounds(20, 20, 90, 25);
        bt.setText("Next");
        bt.setForeground(Color.BLACK);
        bt.setOpaque(false);
        bt.setContentAreaFilled(true);
        bt.setBorderPainted(true);
        bt.setFocusPainted(false);
        bt.setLayout(null);
        bt.addActionListener(new ActionListener()
        {       
            public void actionPerformed(ActionEvent e)
            {   
                n++;
                playMP3.close();
                
                if (n > 1)
                {
                    n = 0;
                }
            }
        });
                   
        window.add(bt);
    }
    
    
    private void soundBase(int s)
    {
        try
        {
            if (s == 0)
            {
                playMP3 = new Player(Sound.class.getResourceAsStream("/res/Audio/s0.mp3"));
            }
            else if (s == 1)
            {
                playMP3 = new Player(Sound.class.getResourceAsStream("/res/Audio/s1.mp3"));
            }
        }
        catch (Exception e)
        {
            //...
        }
    }
    
    
    public class Counter extends Thread
    {                      
        public void run()
        {   
            while (stopThread)
            {
                try
                {
                    Thread.sleep(15);
                    
                    soundBase(n);
                    playMP3.play();
                    
                    if (playMP3.isComplete())
                    {
                        playMP3.close();
                        soundBase(n);
                        playMP3.play();
                    }
                    
                }
                catch (Exception e)
                {
                    //...
                }   
            }
        }
    }
    
    
    public static void main(String[] args)
    {
        new Sound();
    }
}
0
14.05.2018, 23:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2018, 23:53
Помогаю со студенческими работами здесь

Методы добавления и удаления
Здравствуйте, помогите реализовать методы для добавления и удаления клиента, посления и комнаты в...

Методы добавления, удаления объекта
Делал по примеру, ошибки разгребаю по мере появления. Помогите, пожалуйста, реализовать методы...

запросы добавления,обновления,удаления
сделал по примеру,даже пустую базу создал с одной таблице но запросы не работают procedure...

Реализация добавления и удаления ComboBox пользователем
Составьте программу,в которой при выборе элемента в выпадающем списке ComboBox,заголовок главной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru