aboutsummaryrefslogtreecommitdiff
path: root/robottino/all_versions/v4.1/src/RobotFrame.java
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2026-03-26 19:27:18 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2026-03-26 19:27:18 +0100
commit7167b4341ef290d56fb96e2af10883a4b925d83b (patch)
tree1eb1b9e5ab82ddd89540e68d6b22ae69514575c6 /robottino/all_versions/v4.1/src/RobotFrame.java
downloadancient-projects-master.tar.gz
ancient-projects-master.zip
I found my old code!HEADmaster
Diffstat (limited to 'robottino/all_versions/v4.1/src/RobotFrame.java')
-rwxr-xr-xrobottino/all_versions/v4.1/src/RobotFrame.java312
1 files changed, 312 insertions, 0 deletions
diff --git a/robottino/all_versions/v4.1/src/RobotFrame.java b/robottino/all_versions/v4.1/src/RobotFrame.java
new file mode 100755
index 0000000..c8cbf13
--- /dev/null
+++ b/robottino/all_versions/v4.1/src/RobotFrame.java
@@ -0,0 +1,312 @@
1/*
2Copyright 2008, 2009 Sebastiano Tronto <sebastiano@luganega.org>
3
4This file is part of Robottino.
5
6 Robottino is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 Robottino is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Robottino; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
20*/
21
22import javax.swing.*;
23import java.awt.event.*;
24import java.awt.*;
25
26public class RobotFrame extends JFrame implements ActionListener {
27 public static int numeroCopie, i;
28 public static Main main;
29 public static RobotPanel robotPanel;
30 public static Timer timer;
31 public static JMenuBar barraMenu;
32 public static JMenu file, modifica, azioni, info, raMenu, laMenu, rlMenu, llMenu;
33 public static JMenuItem raonMenuItem, raoffMenuItem, rachangeMenuItem, laonMenuItem, laoffMenuItem, lachangeMenuItem;
34 public static JMenuItem rlonMenuItem, rloffMenuItem, rlchangeMenuItem, llonMenuItem, lloffMenuItem, llchangeMenuItem;
35 public static JMenuItem rinomina, elimina, duplica, birra, balla, esplodi, informazioni;
36 RobotFrame( String titolo ) {
37 super ( titolo );
38 numeroCopie = 0;
39 robotPanel = new RobotPanel( titolo );
40 rinomina = new JMenuItem( "Cambia nome" );
41 elimina = new JMenuItem( "Elimina" );
42 duplica = new JMenuItem( "Duplica robot" );
43 birra = new JMenuItem( "Birra" );
44 balla = new JMenuItem( "Balla" );
45 esplodi = new JMenuItem( "Esplodi" );
46 informazioni = new JMenuItem( "Informazioni" );
47 raonMenuItem = new JMenuItem( "Alza" );
48 laonMenuItem = new JMenuItem( "Alza" );
49 rlonMenuItem = new JMenuItem( "Alza" );
50 llonMenuItem = new JMenuItem( "Alza" );
51 raoffMenuItem = new JMenuItem( "Abbassa" );
52 laoffMenuItem = new JMenuItem( "Abbassa" );
53 rloffMenuItem = new JMenuItem( "Abbassa" );
54 lloffMenuItem = new JMenuItem( "Abbassa" );
55 rachangeMenuItem = new JMenuItem( "Cambia posizione" );
56 lachangeMenuItem = new JMenuItem( "Cambia posizione" );
57 rlchangeMenuItem = new JMenuItem( "Cambia posizione" );
58 llchangeMenuItem = new JMenuItem( "Cambia posizione" );
59 rinomina.addActionListener( this );
60 elimina.addActionListener( this );
61 duplica.addActionListener( this );
62 birra.addActionListener( this );
63 balla.addActionListener( this );
64 esplodi.addActionListener( this );
65 informazioni.addActionListener( this );
66 raonMenuItem.addActionListener( this );
67 raoffMenuItem.addActionListener( this );
68 rachangeMenuItem.addActionListener( this );
69 laonMenuItem.addActionListener( this );
70 laoffMenuItem.addActionListener( this );
71 lachangeMenuItem.addActionListener( this );
72 rlonMenuItem.addActionListener( this );
73 rloffMenuItem.addActionListener( this );
74 rlchangeMenuItem.addActionListener( this );
75 llonMenuItem.addActionListener( this );
76 lloffMenuItem.addActionListener( this );
77 llchangeMenuItem.addActionListener( this );
78 raMenu = new JMenu( "Braccio destro" );
79 raMenu.add( raonMenuItem );
80 raMenu.add( raoffMenuItem );
81 raMenu.add( rachangeMenuItem );
82 laMenu = new JMenu( "Braccio sinistro" );
83 laMenu.add( laonMenuItem );
84 laMenu.add( laoffMenuItem );
85 laMenu.add( lachangeMenuItem );
86 rlMenu = new JMenu( "Gamba destra" );
87 rlMenu.add( rlonMenuItem );
88 rlMenu.add( rloffMenuItem );
89 rlMenu.add( rlchangeMenuItem );
90 llMenu = new JMenu( "Gamba sinistra" );
91 llMenu.add( llonMenuItem );
92 llMenu.add( lloffMenuItem );
93 llMenu.add( llchangeMenuItem );
94 modifica = new JMenu( "Modifica" );
95 modifica.add( raMenu );
96 modifica.add( laMenu );
97 modifica.add( rlMenu );
98 modifica.add( llMenu );
99 file = new JMenu( "File" );
100 file.add( rinomina );
101 file.add( duplica );
102 file.add( elimina );
103 azioni = new JMenu( "Azioni" );
104 azioni.add( birra );
105 azioni.add( balla );
106 azioni.add( esplodi );
107 info = new JMenu( "?" );
108 info.add( informazioni );
109 barraMenu = new JMenuBar();
110 barraMenu.add( file );
111 barraMenu.add( azioni );
112 barraMenu.add( modifica );
113 barraMenu.add( info );
114 setJMenuBar( barraMenu );
115 add( robotPanel );
116 }
117 public void actionPerformed( ActionEvent e ) {
118 esegui( e );
119 }
120 public void esegui( ActionEvent e ) {
121 if ( e.getSource() == raonMenuItem )
122 main.list.getRobot( this.getTitle() ).rightArm = true;
123 else if ( e.getSource() == raoffMenuItem )
124 main.list.getRobot( this.getTitle() ).rightArm = false;
125 else if ( e.getSource() == rachangeMenuItem )
126 main.list.getRobot( this.getTitle() ).rightArm = !main.list.getRobot( this.getTitle() ).rightArm;
127 else if ( e.getSource() == laonMenuItem )
128 main.list.getRobot( this.getTitle() ).leftArm = true;
129 else if ( e.getSource() == laoffMenuItem )
130 main.list.getRobot( this.getTitle() ).leftArm = false;
131 else if ( e.getSource() == lachangeMenuItem )
132 main.list.getRobot( this.getTitle() ).leftArm = !main.list.getRobot( this.getTitle() ).leftArm;
133 else if ( e.getSource() == rlonMenuItem )
134 main.list.getRobot( this.getTitle() ).rightLeg = true;
135 else if ( e.getSource() == rloffMenuItem )
136 main.list.getRobot( this.getTitle() ).rightLeg = false;
137 else if ( e.getSource() == rlchangeMenuItem )
138 main.list.getRobot( this.getTitle() ).rightLeg = !main.list.getRobot( this.getTitle() ).rightLeg;
139 else if ( e.getSource() == llonMenuItem )
140 main.list.getRobot( this.getTitle() ).leftLeg = true;
141 else if ( e.getSource() == lloffMenuItem )
142 main.list.getRobot( this.getTitle() ).leftLeg = false;
143 else if ( e.getSource() == llchangeMenuItem )
144 main.list.getRobot( this.getTitle() ).leftLeg = !main.list.getRobot( this.getTitle() ).leftLeg;
145 else if ( e.getSource() == rinomina ) {
146 String newName = JOptionPane.showInputDialog( this, "Inserire il nuovo nome per questo robot:", this.getTitle() );
147 if ( newName != null ) {
148 main.list.getRobot( this.getTitle() ).setName( newName );
149 this.setTitle( newName );
150 robotPanel.nomeRobot = newName;
151 }
152 }
153 else if ( e.getSource() == elimina ) {
154 int selezione = JOptionPane.showOptionDialog( this, "Eliminare il robottino " + this.getTitle() + " ?", "Robottino v4.1 - Cancellazione robottino", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" );
155 if ( selezione == JOptionPane.YES_OPTION ) {
156 main.list.deleteRobot( this.getTitle() );
157 this.dispose();
158 }
159 }
160 else if ( e.getSource() == duplica ) {
161 String newName = JOptionPane.showInputDialog( this, "Inserire il nome per il nuovo robot:", this.getTitle() + " #" + (++numeroCopie) );
162 if ( newName != null ) {
163 main.list.newRobot( main.list.getRobot( this.getTitle() ).leftArm, main.list.getRobot( this.getTitle() ).rightArm, main.list.getRobot( this.getTitle() ).leftLeg, main.list.getRobot( this.getTitle() ).rightLeg, newName );
164 }
165 }
166 else if ( e.getSource() == birra ) {
167 ImageIcon birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra5.gif" ) );
168 JOptionPane.showMessageDialog( this, "", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE, birra );
169 birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra1.jpg" ) );
170 JOptionPane.showMessageDialog( this, "", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE, birra );
171 birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra2.jpg" ) );
172 JOptionPane.showMessageDialog( this, "", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE, birra );
173 birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra3.jpg" ) );
174 JOptionPane.showMessageDialog( this, "", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE, birra );
175 birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra4.jpg" ) );
176 JOptionPane.showMessageDialog( this, "", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE, birra );
177 JOptionPane.showMessageDialog( this, "Che bevuta!", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE );
178 JOptionPane.showMessageDialog( this, "Buuuuuuurp!", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE );
179 robotPanel.body = new ImageIcon( ClassLoader.getSystemResource( "img/robot.gif" ) );
180 }
181 else if ( e.getSource() == balla ) {
182 this.i = 0;
183 main.list.getRobot( this.getTitle() ).setPositions( false, false, false, false );
184 timer = new Timer( 250,
185 new ActionListener() {
186 public void actionPerformed( ActionEvent e ) {
187 RobotFrame.this.i++;
188 switch( RobotFrame.this.i ) {
189 case 1:
190 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setRA( true );
191 break;
192 case 2:
193 break;
194 case 3:
195 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setLA( true );
196 break;
197 case 4:
198 break;
199 case 5:
200 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, true );
201 break;
202 case 6:
203 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( true, true, false, false );
204 break;
205 case 7:
206 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, true, false );
207 break;
208 case 8:
209 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( true, true, false, false );
210 break;
211 case 9:
212 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( true, false, false, true );
213 break;
214 case 10:
215 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, false );
216 break;
217 case 11:
218 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( true, false, false, true );
219 break;
220 case 12:
221 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, true, true, false );
222 break;
223 case 13:
224 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, false );
225 break;
226 case 14:
227 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, true, true, false );
228 break;
229 case 15:
230 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, false );
231 break;
232 case 16:
233 break;
234 case 17:
235 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, true, false );
236 break;
237 case 18:
238 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, true );
239 break;
240 case 19:
241 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, true, false );
242 break;
243 case 20:
244 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, true );
245 break;
246 case 21:
247 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, true, false );
248 break;
249 case 22:
250 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, true );
251 break;
252 case 23:
253 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( true, true, true, true );
254 break;
255 case 24:
256 break;
257 case 25:
258 break;
259 case 26:
260 RobotFrame.main.list.getRobot( RobotFrame.this.getTitle() ).setPositions( false, false, false, false );
261 break;
262 case 27:
263 JOptionPane.showMessageDialog( RobotFrame.this, "Cha fatica!", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE );
264 JOptionPane.showMessageDialog( RobotFrame.this, RobotFrame.this.getTitle() + " è tornato alla posizione di partenza", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE );
265 break;
266 default:
267 timer.stop();
268 break;
269 }
270 RobotFrame.robotPanel.setImages();
271 RobotFrame.robotPanel.repaint();
272 RobotFrame.this.repaint();
273 }
274 }
275 );
276 timer.start();
277 }
278 if ( e.getSource() == esplodi ) {
279 String aux = this.getTitle();
280 main.list.deleteRobot( this.getTitle() );
281 this.dispose();
282 ImageIcon boom = new ImageIcon( ClassLoader.getSystemResource( "img/boom.png" ) );
283 JOptionPane.showMessageDialog( null, "", "Robottino v4.1", JOptionPane.PLAIN_MESSAGE, boom );
284 JOptionPane.showMessageDialog( null, aux + " si è autodistrutto!", "Robottino v4.1", JOptionPane.WARNING_MESSAGE );
285 }
286 if ( e.getSource() == informazioni ) {
287 String aux = this.getTitle() + ":\n\n";
288 if ( main.list.getRobot( RobotFrame.this.getTitle() ).rightArm )
289 aux += "Braccio destro: alzato\n";
290 else
291 aux += "Braccio destro: abbassato\n";
292 if ( main.list.getRobot( RobotFrame.this.getTitle() ).leftArm )
293 aux += "Braccio sinistro: alzato\n";
294 else
295 aux += "Braccio sinistro: abbassato\n";
296 if ( main.list.getRobot( RobotFrame.this.getTitle() ).rightLeg )
297 aux += "Gamba destra: alzata\n";
298 else
299 aux += "Gamba destra: abbassata\n";
300 if ( main.list.getRobot( RobotFrame.this.getTitle() ).leftLeg )
301 aux += "Gamba sinistra: alzata\n";
302 else
303 aux += "Gamba sinistra: abbassata\n";
304 JOptionPane.showMessageDialog( this, aux, "Robottino - v4.1", JOptionPane.INFORMATION_MESSAGE );
305 }
306 try {
307 robotPanel.setImages();
308 robotPanel.repaint();
309 repaint();
310 } catch ( NullPointerException n ) { }
311 }
312} \ No newline at end of file

Generated with cgit - Back to sebastiano.tronto.net