Login: password:
Forgot your password?
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();
        }
    }

}

ButtonManager con textField > in depth


powered by segue
segue_logo