|
ButtonManager con textField
> ButtonPanel > in depth
|
|
ButtonPanel
|
package buttonmanager;
import java.awt.Color;
import java.awt.Component;
import java.awt.Point;
import java.util.*;
import javax.swing.JButton;
import javax.swing.JPanel;
class ButtonPanel extends JPanel{
HashMap buttonList;
int nextButtonLabel=1;
final int BUTTONWIDTH=60;
final int BUTTONHEIGHT=20;
Random rg=new Random();
ControlPanel cp=null;
public ButtonPanel() {
this.setLayout(null);
this.setBackground(Color.GREEN);
buttonList=new HashMap();
}
public void setControlPanel(ControlPanel cp){
this.cp=cp;
}
private Point generateRandomPoint(){
int x=rg.nextInt(this.getWidth()-BUTTONWIDTH);
int y=rg.nextInt(this.getHeight()-BUTTONHEIGHT);
return new Point(x,y);
}
public void addButton(){
JButton b=new JButton(" "+(nextButtonLabel)+" ");
b.setLocation(generateRandomPoint());
b.setSize(BUTTONWIDTH,BUTTONHEIGHT);
this.add(b);
this.repaint();
buttonList.put(new Integer(nextButtonLabel), b);
nextButtonLabel++;
}
private Component selectElement(){
if (cp==null) {
System.err.println("Error - ControlPanel is null in ButtonPanel");
System.exit(1);
}
int numElem=cp.getValueFromTextField();
if (numElem<0||numElem>nextButtonLabel) return null;
Component o=(Component)buttonList.get(new Integer(numElem));
return o;
}
public void removeButton(){
Component c=selectElement();
if (c!=null) {
buttonList.remove(c);
this.remove((Component)c);
this.repaint();
}
}
void moveButton() {
Component c=selectElement();
if (c!=null) {
Point p=generateRandomPoint();
c.setLocation(p);
this.repaint();
}
}
}
|
|
|