<?xml version="1.0" encoding="utf-8"  ?>
<rss version="2.0">
	<channel>
		<title>Programmazione 2 2009/10 &gt; Altro materiale &gt; ButtonManager con textField</title>
		<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473</link>
		<description></description>
		<lastBuildDate>Fri, 24 Feb 2023 04:28:52 +0100</lastBuildDate>
		<generator>Segue RSS Generator</generator>
		<item>
			<title>Descrizione del programma da implementare</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1055&amp;detail=1055</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1055&amp;detail=1055</guid>
			<pubDate>Sun, 2 May 2010 22:28:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>Stesse funzionalit&amp;egrave; di &amp;quot;ButtonManager&amp;quot;, ma accanto ai bottoni di controllo vi dovr&amp;agrave; essere un campo di testo.&lt;br /&gt;&amp;quot;Cancella&amp;quot; e &amp;quot;Sposta&amp;quot; non agiranno su un bottone a caso, ma sul bottone numerico avente come etichetta il numero specificato dall&#039;utente nel campo di testo. Qualora il campo di testo contenga valori non sensati, l&#039;azione non avr&amp;agrave; effetto.&lt;br /&gt;&lt;br /&gt;NOTA: nella soluzione data di seguito vengono evidenziate le variazioni con il codice di ButtonManager. Si noti l&#039;uso di una Map al posto di una Collection.</description>
		</item>
		<item>
			<title>FinestraPrincipale</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1050&amp;detail=1050</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1050&amp;detail=1050</guid>
			<pubDate>Sun, 2 May 2010 22:10:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>package buttonmanager;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;public class FinestraPrincipale extends JFrame{&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public static void main(String[ ] a){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new FinestraPrincipale();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; public FinestraPrincipale() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setSize(400,400);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.centerInScreen();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fai in modo che la chiusura della finestra&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // termini l&#039;applicazione&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setLayout(new BorderLayout());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ButtonPanel bp=new ButtonPanel();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(bp,BorderLayout.CENTER);&lt;br /&gt;&lt;span style=&quot;background-color: rgb(204, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlPanel cp= new ControlPanel(bp);&lt;/span&gt;&lt;br style=&quot;background-color: rgb(204, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(204, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(cp,BorderLayout.SOUTH);&lt;/span&gt;&lt;br style=&quot;background-color: rgb(204, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(204, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bp.setControlPanel(cp);&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // rendi la finestra visibile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setVisible(true);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; private void centerInScreen() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trova le dimensioni dello schermo e della finestra&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dimension screenSize =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dimension frameSize = this.getSize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // assicurati che la finestra non sia pi&amp;ugrave; grande dello schermo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (frameSize.height &amp;gt; screenSize.height)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; frameSize.height = screenSize.height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (frameSize.width &amp;gt; screenSize.width)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; frameSize.width = screenSize.width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // centra la finestra nello schermo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setLocation((screenSize.width - frameSize.width) / 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (screenSize.height - frameSize.height) / 2);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}</description>
		</item>
		<item>
			<title>ControlPanel</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1051&amp;detail=1051</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1051&amp;detail=1051</guid>
			<pubDate>Sun, 2 May 2010 22:12:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>package buttonmanager;&lt;br /&gt;&lt;br /&gt;import java.awt.GridLayout;&lt;br /&gt;import java.awt.LayoutManager;&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;import java.awt.TextField;&lt;/span&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import javax.swing.JButton;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;public class ControlPanel extends JPanel {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String CREA=&amp;quot;create&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String CANCELLA=&amp;quot;delete&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String SPOSTA=&amp;quot;move&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ButtonPanel bp;&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private TextField tf;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlPanel(ButtonPanel bp){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.bp=bp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setLayout(new GridLayout(1,4));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JButton createButton=new JButton(&amp;quot;aggiungi&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JButton deleteButton=new JButton(&amp;quot;cancella&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JButton moveButton=new JButton(&amp;quot;sposta&amp;quot;);&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf=new TextField();&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // associa delle stringhe di comando ai bottoni&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createButton.setActionCommand(CREA);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deleteButton.setActionCommand(CANCELLA);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveButton.setActionCommand(SPOSTA);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // aggiungi i bottoni al pannello&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(createButton);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(deleteButton);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(moveButton);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(tf);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // aggungi un controller ai bottoni&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ButtonController bc=new ButtonController(bp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createButton.addActionListener(bc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deleteButton.addActionListener(bc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveButton.addActionListener(bc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int getValueFromTextField(){&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int x=-1;&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x=Integer.parseInt(tf.getText());&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (NumberFormatException e) {&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.err.println(&amp;quot;Invalid value in textfield&amp;quot;);&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return x;&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;}</description>
		</item>
		<item>
			<title>ButtonController</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1052&amp;detail=1052</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1052&amp;detail=1052</guid>
			<pubDate>Sun, 2 May 2010 22:13:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>package buttonmanager;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;&lt;br /&gt;class ButtonController implements ActionListener{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ButtonPanel bp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ButtonController(ButtonPanel bp){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.bp=bp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void actionPerformed(ActionEvent e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String command=e.getActionCommand();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (command.equals(ControlPanel.CREA)) bp.addButton();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (command.equals(ControlPanel.CANCELLA)) bp.removeButton();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (command.equals(ControlPanel.SPOSTA)) bp.moveButton();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}</description>
		</item>
		<item>
			<title>ButtonPanel</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1053&amp;detail=1053</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2009Programmazione2&amp;section=122&amp;page=473&amp;story=1053&amp;detail=1053</guid>
			<pubDate>Sun, 2 May 2010 22:17:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>package buttonmanager;&lt;br /&gt;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.Component;&lt;br /&gt;import java.awt.Point;&lt;br /&gt;import java.util.*;&lt;br /&gt;import javax.swing.JButton;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;class ButtonPanel extends JPanel{&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap buttonList;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int nextButtonLabel=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; final int BUTTONWIDTH=60;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; final int BUTTONHEIGHT=20;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Random rg=new Random();&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlPanel cp=null;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ButtonPanel() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setLayout(null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setBackground(Color.GREEN);&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buttonList=new HashMap();&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setControlPanel(ControlPanel cp){&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.cp=cp;&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Point generateRandomPoint(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int x=rg.nextInt(this.getWidth()-BUTTONWIDTH);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int y=rg.nextInt(this.getHeight()-BUTTONHEIGHT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new Point(x,y);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void addButton(){&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JButton b=new JButton(&amp;quot; &amp;quot;+(nextButtonLabel)+&amp;quot; &amp;quot;);&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.setLocation(generateRandomPoint());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.setSize(BUTTONWIDTH,BUTTONHEIGHT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(b);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.repaint();&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buttonList.put(new Integer(nextButtonLabel), b);&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nextButtonLabel++;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Component selectElement(){&lt;br /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cp==null) {&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.err.println(&amp;quot;Error - ControlPanel is null in ButtonPanel&amp;quot;);&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.exit(1);&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numElem=cp.getValueFromTextField(); &lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (numElem&amp;lt;0||numElem&amp;gt;nextButtonLabel) return null;&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Component o=(Component)buttonList.get(new Integer(numElem));&lt;/span&gt;&lt;br style=&quot;background-color: rgb(0, 255, 255);&quot; /&gt;&lt;span style=&quot;background-color: rgb(0, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return o;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void removeButton(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Component c=selectElement();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c!=null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buttonList.remove(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.remove((Component)c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.repaint();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void moveButton() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Component c=selectElement();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c!=null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point p=generateRandomPoint();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.setLocation(p);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.repaint();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}</description>
		</item>
	</channel>
</rss>