<?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 03:36:37 +0100</lastBuildDate>
		<generator>Segue RSS Generator</generator>
		<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>